我有我認爲是一個簡單的建模問題,但由於某種原因,我無法圍繞解決問題的最佳方式解決問題。實體框架建模代碼優先
我有一個人類(它擁有關於用戶的信息),我有一個PhoneCarrier類,它擁有關於PhoneCarriers(他們的名字和電子郵件擴展將電子郵件發送到個人電話)的信息。
這是Person類
public class Person
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
[Display(Name = "First Name")]
[Required(ErrorMessage ="{0} is required")]
public string FirstName { get; set; }
[Display(Name = "Last Name")]
[Required(ErrorMessage ="{0} is required")]
public string LastName { get; set; }
[Display(Name = "Dish Order")]
//[Range(1, byte.MaxValue, ErrorMessage = "Value of {0} must be greater than 0")]
public byte DishOrder { get; set; }
[Display(Name = "E-Mail")]
[RegularExpression(".+\\@.+\\..+",
ErrorMessage = "Please enter a valid email address")]
public string Email { get; set; }
[DataType(DataType.Text)]
[RegularExpression(@"(^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$)", ErrorMessage = "{0} must be a numeric value of length 10")]
[Display(Name = "Phone Number")]
//[DisplayFormat(DataFormatString = "{0:###-###-####")]
public string PhoneNumber { get; set; }
[Display(Name = "Phone Carrier")]
public int PhoneCarrier { get; set; }
public virtual ICollection<Fine> Fines { get; set; }
public virtual ICollection<DishDate> DishDates { get; set; }
[NotMapped]
public static IEnumerable<PhoneCarrier> PhoneCarriers { get; set; }
這是PhoneCarrier類
public class PhoneCarrier
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
[Required(ErrorMessage ="{0} is required")]
public string Company { get; set; }
[Display(Name = "Email Extension")]
[Required(ErrorMessage ="{0} is required")]
public string EmailExtension { get; set; }
}
我想知道,這將是模型的正確方法,我感覺好像自己是一個更好的因爲現在,如果我想獲得關於某人的電話公司的信息,我必須先獲取該人員的電話號碼編號,然後我必須撥打其中id =電話號碼編號的PhoneCarrier。下面是一個實際的例子
var phoneCarrierId = person.PhoneCarrier;
return db.PhoneCarriers.Where(x => x.ID == phoneCarrierId).FirstOrDefault().EmailExtension;
有沒有一種方法,我可以將它設置(如使INT PhoneCarrier場在Person類類型PhoneCarrier的)的地方,我可以只叫db.Person.PhoneCarrier。 EmailExtension?這似乎是一個更清潔的方法,我想知道如果這是可能的,或者如果我這樣做的方式是更正確的方式...
你爲什麼在人的IEnumerable PhoneCarriers。有一對多的關係嗎? –
sachin