我见过2种类型的实体的实体,利弊类类型FK,像这样:把刚才的密钥类型(ID)或
public class Person
{
public int Id {get;set;}
public string Name {get;set;}
public Country Country {get;set;}
}
像这样:
public class Person
{
public int Id {get;set;}
public string Name {get;set;}
public int CountryId {get;set;}
}
我认为第二个方法是更轻便,你只有当你需要的相关数据;
你觉得哪一个更好?
你称之为“魔术”的东西是ORM的核心。不使用它会创建一个贫血域模型,这是一种ORM反模式(IOW,如果您不使用它的功能,为什么要使用ORM?) – 2010-09-27 15:01:19
感谢您的评论。从我的角度来看,在方法接口中暴露实体对象会给方法开发者带来一个问题:实体是否来自同一个对象上下文?我可以重新附加到我自己的吗?实体中加载了什么部分的对象图?我可以延迟加载实体的其他部分/是实体的对象上下文还活着吗? ORM增加了很多复杂性,我已经几次将我的手指烧在我认为可行的事情上,但没有。 – Andreas 2010-09-27 16:29:10
您描述的所有问题都来自错误的会话管理。我并不是说每个人都能够直观地掌握基本概念,但是汽车的比喻应该已经到位。 – 2010-09-27 18:28:43