2011-12-29 87 views
1

我正在为我的参考数据库创建助手应用程序。下面是DB未创建数据库(sql ce)表

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 managament工作室我不打开它的代码没有创建任何表。我不需要任何数据绑定。

+0

所以你的数据库被创建,但你的表不是?您可以尝试卸载您的程序并尝试再次部署它。对我来说有一次帮助。 – BigL 2012-01-14 16:24:00

回答

0

我看了看Linq-to-SQL生成的数据库代码,发现生成的代码和你的代码有很大区别。

我的DataContext包含一个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(); 
     } 

并尝试在我的评论尝试卸载我的建议你应用程序并重新部署它,一旦问题就修复。