我最好使用类或只是实体框架外键的ID?

时间:2011-05-12 12:34:11

标签: ef-code-first entity-framework-4.1

基本上,我有一个具有ID和用户名的“身份”表,我有另一个表,其中有一个人“拥有”的条目,因此,我需要有一个链接到Identity表的FK

例如:Class "Identity" - int ID, string username.

我只是想知道以下哪项是最好的:

  1. Class "test" - int ID, string data, Identity identity

  2. Class "test" - int ID, string data, int identity_id - 注释定义为外键。

  3. 我个人使用的是第一个,并且看到EF基本上排在幕后第二,但我只是想知道优点/缺点是什么,最好的是什么?

1 个答案:

答案 0 :(得分:3)

从面向对象的角度来看,第一个更好,因为您引用了相关对象,这是您在处理对象时所期望的。在数据库中,这由外键执行,外键定义两个记录之间的关系。

实体框架提供了正确的面向对象方法(第一个)以及在实体中包含外键属性的方法。原因是暴露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属性,也可以访问实体。这些方法有名称:独立关联(第一个)和外键关联(第二个)。它们之间存在更多差异 - 我在another answer中描述了它们。