2011-04-19 13 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