Я новичок в SQL и попытался создать таблицу с LINQ To SQL.
Сначала я создаю объект DataContext:
const string connStr = @"Spiri_SQL_CE_DB.sdf";
_dc = new Spiri_SQL_CE_DB(connStr);
И я пытаюсь создать таблицу БД следующим способом:
public void CreateUserTab(string nick)
{
string sqlCdm = string.Format(CultureInfo.InvariantCulture, "CREATE TABLE {0} (Nick nvarchar(30) PRIMARY KEY, AzetID nvarchar(30), RpText nvarchar(300), Your bit, Sing nvarchar(30), Time DateTime, OriginalTxt nvarchar(300))",nick);
_dc.ExecuteCommand(sqlCdm);
_dc.SubmitChanges();
}
1.
Первая проблема заключается в том, что я использую этот метод, создаю таблицу и закрываю приложение. Но новой созданной таблицы нет в базе данных.
Я думаю, что изменения, которые я делаю в базе данных, не сохраняются в БД. Если я проверяю файл БД в обозревателе серверов, я не вижу новую таблицу БД.
2.
И вторая проблема.
Например, у меня есть класс, который представляет таблицу БД, вот она:
[Table]
public class User
{
[Column(IsPrimaryKey = true)]
public string Nick { get; set; }
[Column]
public string AzetId { get; set; }
[Column]
public String RpText { get; set; }
[Column]
public bool Your { get; set; }
[Column]
public string Sing { get; set; }
[Column]
public DateTime Time { get; set; }
[Column]
public string OriginalTxt { get; set; }
}
Я знаю, что возможно отображение таблицы SQL на класс CLR Tabel. Возможно ли создать таблицу БД (с конкретным именем) с этим классом?
Я хотел бы пропустить команду SQL в своем коде, возможно ли создать таблицу БД из объекта CLR?
3.
И последний вопрос:
Сценарий:
У меня есть SQL Compact DB файл, он состоит из одной таблицы User1 типа Table<User>
, я генерирую с SqlMetal * dbml файл.
Тогда я из кода создаю еще одну таблицу User2, User3 ... UserN.
Закрыть приложение.
Возможно ли иметь доступ к таблице БД User2 ... UserN? Или я должен создать еще один файл DBML?