0

假设你有

public class A
{
   public string _myString;
}

而这个背景:

public class MyContext: DbContext
{
    public DbSet<A> myASet{ get; set; }
}

现在,有没有办法告诉 EF 生成一个标识列myASet

我不想在 中添加 ID 字段class A,所以我想知道 EF 是否可以这样做。非常感谢,

于尔根

4

3 回答 3

2

如果你想在数据库中拥有它,你必须将 ID 列添加到你的类中。同样在 EF 中,每个实体都必须具有映射的主键。

于 2011-11-18T10:36:00.330 回答
1

EF 只会使用实际在您的模型类中的列,因此您必须将所有您想要的列放入您自己。这包括主键的标识列。

于 2011-11-18T10:24:53.297 回答
1

如果您有一个名为 Product 的实体和一个名为 'ProductId' 的属性,EF 将自动添加标识列,因为它按照惯例查找实体名称 + Id。

您可以通过在所需属性上方添加 [key] 属性来使用不符合约定的列。

在下面的例子中。将为 ProductId 创建一个标识列。

 public class Product 
 { 
    public int ProductId { get; set; } 
    public string Name { get; set; } 
    public string CategoryId { get; set; } 
    public virtual Category Category { get; set; } 
 } 

在此示例中,“MyId”列将被创建为身份。

 public class Product 
 { 
    [key]
    public int MyId { get; set; } 
    public string Name { get; set; } 
    public string CategoryId { get; set; } 
    public virtual Category Category { get; set; } 
 }
于 2011-11-18T10:27:53.647 回答