我们都熟悉3 types of Inheritance 但是我们有以下不适合的情况。
1)我们有一个地点类
public abstract class Location
{
public decimal geoLat { get; set; }
public decimal geoLng { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
}
我们有一个行情类
public class Quote
{
public int QuoteId {get;set;}
public decimal Qty {get;set;}
public decimal SubTotal {get;set;
//etc
}
我们想要做的是拥有许多位置的属性,以便我们的MSSQL Schema看起来像这样。
引用 --QuoteId --SubTotal --JobgeoLat --JobgeoLng --JobAddress1 --JobAddress2 --JobCity --JobState --JobZip --BillinggeoLat --BillinggeoLng --BillingAddress1 --BillingAddress2 --BillingCity --BillingState --BillingZip --ShippinggeoLat --ShippinggeoLng --ShippingAddress1 --ShippingAddress2 --ShippingCity --ShippingState --ShippingZip
在我们的应用程序中,我们想要访问位置信息,如myQuote.Location.Address1等。
我们当然可以创建一个像Quote.JobLocation,Quote.BillingLocation这样的Fk,它有一个单独的位置表。然而,由于许多原因,使用这种Fk的性能并不理想。
我们也可以在报价表中添加列,就像在我的示例中一样(这就是当前的设置),但我们想要使用强类型Quote.BillingLocation,Quote.JobLocation等。
所以问题是,我们如何实现Quote表结构(将Location属性直接存储在Quotes表中),同时还使用Quote.JobLocation等。
提前感谢您的帮助。
答案 0 :(得分:0)
添加 [ComplexType]
到Location类然后添加 公共位置JobLocation {get; set;} 公共位置ShippingLocation {get; set;}
在Quotes表中生成了正确的属性。
谢谢@KellyEthridge