我有一个数据模型如下:
客户拥有产品和付款方式。可以为每个产品分配任何或所有客户的付款方式,默认设置为一组。
外键是:
Customer.CustomerId => Product.CustomerId
Customer.CustomerId => PaymentMethod.CustomerId
Product.ProductId => ProductPaymentMethod.ProductId
PaymentMethod.PaymentMethodId => ProductPaymentMethod.PaymentMethodId
我想为演示目的自定义此模型,客户需要一组付款方式和一组产品。产品包含从PaymentMethod继承的ProductPaymentMethods集合。
我删除了PaymentMethod和ProductPaymentMethod之间的关联,从PaymentMethod向ProductPaymentMethod添加了一个继承,并从ProductPaymentMethod中删除了PaymentMethodId。
这是我的模特:
当我保存模型或构建项目时,我得到2个错误:
错误3002:映射问题 片段从行开始 226:潜在的运行时违规 表ProductPaymentMethod的键 (ProductPaymentMethod.ProductPaymentMethodId): 列 (ProductPaymentMethod.ProductPaymentMethodId) 映射到EntitySet PaymentMethods的属性 (PaymentMethods.ProductPaymentMethodId) 在概念方面,但他们没有 形成EntitySet的关键属性 (PaymentMethods.PaymentMethodId)。
和
错误3003:映射问题 片段从第226行开始:全部 关键属性 (PaymentMethods.PaymentMethodId)的 EntitySet PaymentMethods必须是 映射到所有关键属性 (ProductPaymentMethod.ProductPaymentMethodId) 表ProductPaymentMethod。
我做错了什么?
编辑:在完成了一些谷歌搜索之后,我找到了几种解决方案,其中大部分并不适合这种情况。大多数人谈论继承需要1-1而不是1-many关系。但是,由于Customer to Product 1-many关系,该模型在PaymentMethod和ProfilePaymentMethod之间需要1-many。是不是可以做我正在尝试的事情?
答案 0 :(得分:0)
到目前为止,我唯一的答案是有一些手动创建的POCO类用于演示,Mapper类用于将我的数据实体转换为表示实体