class UserInfo
{
public int UserId { get; set; }
public string DisplayName { get; set; }
public DateTime CreationTime { get; set; }
public DateTime LastModified { get; set; }
}
class UserProfile : public UserInfo
{
// I don't want this to be directly exposed out of the DAL
public string ConfirmationToken { get; set; }
// Navigation property
public virtual ICollection<UserVariant> Variants { get; set; }
}
class DAL
{
// Returned value include no navigation properties
public UserInfo GetUser(int UserId) { ... }
}
是否可以定义'.edmx'的继承,以便'UserProfile'将用作数据库表的参考而不是UserInfo?
答案 0 :(得分:0)
解决方案是将'Model-First'转换为'Code-First'并让DB Model类继承自暴露所选方法的接口(非导航属性),然后DAL将暴露此接口,从而避免上下文导航attr访问。
不幸的是,我没有找到针对上述问题的Model-First解决方案,而且必须采用Code-First。