EF4.1代码优先问题

时间:2011-04-14 16:29:41

标签: c# entity-framework-4.1

我想使用EF 4.1 Code First Model创建我的第一个应用程序。我想为杂志订阅建模,但只想检查我的POCO课程是否适合用途。

以下是我的课程。我错过了什么吗?

客户应该是Subscription维护合约的会员,还是应该只是该列表是客户的一员?

感谢。

public class Subscription
{
    public int SubscriptionID { get; set; }
    public string CardNumber { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }
    public decimal NetPrice { get; set; }
    public decimal Tax { get; set; }
    public decimal Discount { get; set; }
    public string PromotionalCode { get; set; }
    public Customer Customer{ get; set; }
}

public class Customer    {
    public int CustomerID { get; set; }
    public string Title { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public PostalAddress PostalAddress { get; set; }
    public string EmailAddress { get; set; }
    public string Telephone { get; set; }
    public string Mobile { get; set; }
    public DateTime DateOfBirth { get; set; }
    public string Username { get; set; }
    public string Password { get; set; }
    public string SecurityQuestion { get; set; }
    public string SecurityAnswer { get; set; }
    public bool Valid { get; set; }
    public IList<Subscription> Subscriptions { get; set; }
    public bool MailMarketing { get; set; }
    public bool PartnerMailMarketing { get; set; }
}

public class PostalAddress
{
    public int ID { get; set; }
    public string Address1 { get; set; }
    public string Address2 { get; set; }
    public string Address3 { get; set; }
    public string City { get; set; }
    public string Postcode { get; set; }
    public string Region { get; set; }
    public string Country { get; set; }
}

2 个答案:

答案 0 :(得分:1)

如果客户有X个嫌疑人,则每个嫌疑人都应​​该拥有customerID,因此您需要在Suscription类中使用该嫌疑人(public int CustomerID {get; set;})。

OTOH,我认为你必须把那个客户参考作为虚拟和一个(我不知道为什么)。

也许我错了,但这对我有用。

无论如何,你的问题是什么?

答案 1 :(得分:0)

您的模型看起来正确。您不一定需要Customer类中的Subscription属性,但如果您想要检索特定的Subscription然后想要查找绑定的客户,它确实有帮助到那个订阅。在那种情况下,您可以执行var customer = mySub.Customer而不是查询具有特定订阅ID的客户。