作为一名新程序员,我试图了解何时应该为我的模型创建导航属性。有什么权衡?
在极端情况下,模型可以只包含字段需求,或者基本模型可以为每个字段提供导航属性?
或者导航属性是否应仅用于复杂的相关实体(具有多个属性的实体)?
我正在考虑的另一个考虑因素是最适合MVC下拉或jquery自动完成的问题。如何设计模型影响应用程序和SQL性能?
public class Vendor
{
public int ID { get; set; }
public string Name { get; set; }
public string Number { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string State { get; set; }
public string PostalCode { get; set; }
public string Country { get; set; }
}
或者我可以这样做并假设相关的表也存在于命名空间中,反过来又存在于数据库中。
public class Vendor
{
public int ID { get; set; }
public virtual Name Name { get; set; }
public virtual Number Number { get; set; }
public virtual Street Street { get; set; }
public virtual City City { get; set; }
public virtual State State { get; set; }
public virtual PostalCode PostalCode { get; set; }
public virtual Country Country { get; set; }
}
我可以看到一些相关实体在状态上会像国家一样是静态的,但数字和街道会随着时间的推移而增长。
答案 0 :(得分:0)
如果您的属性可以由简单的数据库列表示,那么您使用第一种方法,如果您的属性本身具有自己的属性,那么您将需要一个导航属性。如果你的情况,如果城市也有Id,Name等属性,那么你将使用导航属性,但是,如果你只想存储城市作为名称,你的第一种方法将起作用。