Таблица базы данных (sql ce) не создана - PullRequest
1 голос
/ 29 декабря 2011

Я создаю вспомогательное приложение для моей справочной базы данных. Вот код для db

public class DayNameDataContext : DataContext
{
    public static string DBConnectionString = "Data Source=isostore:/imieniny.sdf;";
    public ImieninyDataContext(string connectionString) : base(connectionString) { }
    public Table<DayName> DayNameTable;
}

[Table]
public class DayName
{
    [Column(DbType = "INT NOT NULL IDENTITY", IsDbGenerated = true,IsPrimaryKey = true, AutoSync = AutoSync.OnInsert)]
    public int Id { get; set; }

    [Column(DbType = "DATETIME NOT NULL")]
    public DateTime Data { get; set; }

    [Column(DbType = "NVarChar(30) NOT NULL")]
    public string Name { get; set; }
}

И в моем приложении у меня есть код события загрузки страницы

DayNameDataContext im = new DayNameDataContext(DayNameDataContext.DBConnectionString);
if (im.DatabaseExists() == false)
{
    im.CreateDatabase();
}

И когда я копирую базу данных из изолированного хранилища на рабочий стол и открываю ее в студии управления SQL, у меня не создается никаких таблиц. Мне не нужны привязки данных.

1 Ответ

0 голосов
/ 14 января 2012

Я посмотрел на мой сгенерированный код базы данных Linq-to-SQL и заметил одну большую разницу между сгенерированным кодом и вашим.

Мой DataContext содержит свойство Table вместо переменной Table, может быть, это вызываетпроблема.

И эти дополнительные строки:

private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource();

    #region Extensibility Method Definitions
    partial void OnCreated();
    partial void InsertHeighscores(Heighscores instance);
    partial void UpdateHeighscores(Heighscores instance);
    partial void DeleteHeighscores(Heighscores instance);
    #endregion

        public HeighScoresDataContext(string connection) : 
                base(connection, mappingSource)
        {
            OnCreated();
        }

И в моей Таблице тоже есть несколько дополнительных строк Определения конструктора и метода расширяемости:

#region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnIdChanging(int value);
    partial void OnIdChanged();
    partial void OnDifficultyChanging(int value);
    partial void OnDifficultyChanged();
    partial void OnFieldSizeChanging(int value);
    partial void OnFieldSizeChanged();
    partial void OnTimeChanging(int value);
    partial void OnTimeChanged();
    #endregion

        public Heighscores()
        {
            OnCreated();
        }

И попробуйте мое предложение вМой комментарий попробуйте удалить ваше приложение и повторно развернуть его для меня, это исправлено, как только проблема.

...