基本上,我有一个“身份”表,其中包含 ID 和用户名,我还有另一个表,其中包含某个人“拥有”的条目,因此,我需要有一个链接到身份表的 FK .
例如:“Identity”类 - 整数 ID,字符串用户名。
我只是想知道以下哪一个最好:
“test”类 - int ID、字符串数据、Identity 标识
类“test” - int ID、字符串数据、int Identity_id
- 带有定义为外键的注释。
我个人使用第一个,并且看到 EF 基本上在幕后执行第二个,但我只是想知道优点/缺点是什么以及最好的是什么?
最佳答案
从面向对象的角度来看,第一个更好,因为您可以引用相关对象,并且这是您在处理对象时所期望的。在数据库中,这是通过定义两个记录之间的关系的外键来执行的。
Entity Framework 提供了正确的面向对象的方法(第一个)以及在实体中包含外键属性的方法。原因是暴露FK属性会让一些操作变得更加容易。第二种方法最常见的解决方案是:
public class Test
{
public int Id { get; set; }
public string Data { get; set; }
[ForeignKey("Identity")]
public int IdentityId { get; set; }
public Identity Identity { get; set; }
}
您可以访问 FK 属性(property)和实体。这些方法有名称:独立关联(第一个)和外键关联(第二个)。它们之间还有更多差异 - 我在 another answer 中描述了它们.
关于ef-code-first - 我最好使用类还是仅使用 Entity Framework 外键的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5978057/