未创建数据库(sql ce)表

时间:2011-12-29 10:04:01

标签: windows-phone-7 sql-server-ce

我正在为我的参考数据库创建帮助应用程序。这是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();
}

当我将db从独立存储复制到桌面并在sql managament studio中打开它时,我没有创建任何表。我不需要任何数据绑定。

1 个答案:

答案 0 :(得分:0)

我看了一下我的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();
        }

在我的评论中尝试我的建议尝试卸载您的应用并为我重新部署它,一旦问题解决了。