私はEntity Frameworkを使用してデータレイヤを構築していますが、エンティティの参照フィールドをそのエンティティのキーに入れようとしています。参照フィールドをEF 4.1のエンティティキーの一部として使用
VS2010、.NET 4、EF 4.1、CodeFirstアプローチを使用します。製品と顧客エンティティは、それらのフィールドをSETIDているので
public class Customer
{
[Key]
[Column(Order = 0)]
public int SetID { get; set; }
[Key]
[Column(Order = 1)]
public int CustomerId { get; set; }
public string CustomerName { get; set; }
}
public class Product
{
[Key]
[Column(Order = 0)]
public int SetID { get; set; }
[Key]
[Column(Order = 1)]
public int ProductId { get; set; }
public string ProductName { get; set; }
}
public class SalesVolume
{
[Key]
[Column(Order = 0)]
public Product product { get; set; }
[Key]
[Column(Order = 1)]
public Customer customer { get; set; }
[Key]
[Column(Order = 2)]
public DateTime SalesDate { get; set; }
public double Value { get; set; }
}
すべての私のデータは、セットで構成されています。すべてのその情報は、次のコードサンプルをご検討ください考える
SalesVolumeについては、ProductエンティティおよびCustomerエンティティへの参照があり、これらの参照フィールドをSalesVolumeの複合主キーの一部にします。
CREATE TABLE [dbo].[SalesVolumes](
[SalesDate] [datetime] NOT NULL,
[Value] [float] NOT NULL,
[product_SetID] [int] NULL,
[product_ProductId] [int] NULL,
[customer_SetID] [int] NULL,
[customer_CustomerId] [int] NULL,
PRIMARY KEY CLUSTERED
(
[SalesDate] ASC
)
製品と顧客の参照は二つのフィールドごとに配置され、それらが主キーの一部ではありません。私が求めていたものとは全く異なる は、上記のコードのために、EFは、次の表を生成しました。
EFに、setIDフィールドとPK:(setID、productID、customerID)の1つのみを含むSalesVolumeテーブルを生成するようにEFに指示するにはどうすればよいですか?
ありがとうございました。
を。つまり、Customer_CustomerId、Customer_SetID、Product_SetID、およびProduct_ProductIDという別のプロパティです。それでもナビゲーションプロパティは保持することができます。 – BennyM