2011-04-19 16 views
2

我正在創建數據庫,我想爲表的Id使用除「Id」之外的其他命名約定。例如,我有一個產品表,我想使用ProductId作爲主鍵名稱。我該怎麼做呢?Linq 2 SQL - 使用比'Id'更多的ID名稱

當我從我的POCO生成我的數據庫時,出現'myEntity'類型的鍵'Id'的找不到鍵成員'Id'的錯誤。密鑰可能是錯誤的,或'myEntity'上的字段或屬性已更改名稱。

這裏是我的實體:

public class Product 
{ 
    [Column(IsPrimaryKey=true, IsDbGenerated=true, AutoSync=AutoSync.OnInsert, Name="ProductId")] 
    internal int ProductId{ get; set; } 

    [Column (CanBeNull=false)] 
    public string Name { get; set; } 

    [Column (CanBeNull=false)] 
    public DateTime CreatedDate { get; set; } 

    [Column (CanBeNull=true)] 
    public DateTime? ModifiedDate { get; set; } 
} 
+1

我認爲錯誤是不相關的你發佈的代碼,它必須是別的東西 – V4Vendetta 2011-04-19 04:41:30

回答

1

產品從您的DataContext引用的唯一表?這對我的作品:

static void Main(string[] args) 
{   
    MyDatabase db = new MyDatabase(@"C:\Temp\Database.sdf"); 
    db.CreateDatabase(); 
} 

public class MyDatabase : DataContext 
{ 
    public Table<Product> Products; 
    public MyDatabase(string connection) : base(connection) { } 
} 

[Table(Name="Products")] 
public class Product 
{ 
    [Column(IsPrimaryKey=true, IsDbGenerated=true, AutoSync=AutoSync.OnInsert, Name="ProductId")] 
    internal int ProductId{ get; set; } 

    [Column (CanBeNull=false)] 
    public string Name { get; set; } 

    [Column (CanBeNull=false)] 
    public DateTime CreatedDate { get; set; } 

    [Column (CanBeNull=true)] 
    public DateTime? ModifiedDate { get; set; } 
} 
+0

是....深夜編程錯誤大聲笑。我有另一個實體引用'myEntity',但它有錯誤的Id名稱。 – contactmatt 2011-04-19 13:57:45