0

いくつかの記事と回答を読みましたが、何も役に立ちませんでした。

私は2つのエンティティを持っています:

[DataContract(IsReference = true)]
public class ProductType : IEntity
{
    [DataMember]
    public int Id { get; set; }

    [DataMember]
    public string Article { get; set; }

    //.....
}

[DataContract(IsReference = true)]
public class Product
{
    [Key]   
    [DataMember]
    public int ProductTypeId { get; set; }

    [DataMember]
    [ForeignKey("ProductType")]
    public ProductType ProductType { get; set; }

    [DataMember]
    public decimal Quantity { get; set; }
}

テーブルの ProductTypeId 列は主キーです。そして、私はここで一対一またはゼロの関係を持ちたいと思っています. しかし、私はこのようにすることはできません:

// Configure the primary key for the OfficeAssignment
modelBuilder.Entity<Product>()
    .HasKey(t => t.ProductTypeId);

// Map one-to-zero or one relationship
modelBuilder.Entity<Product>()
    .HasRequired(t => t.ProductType)
    .WithOptional(t => t.Product);

ProductType エンティティに Product プロパティがないためです。

これを試しましたが、ProductType プロパティが null です:

[DataContract(IsReference = true)]
    public class Product
    {
        [Key]
        [ForeignKey("ProductType")]
        [DataMember]
        public int ProductTypeId { get; set; }

        [DataMember]
        public ProductType ProductType { get; set; }

        [DataMember]
        public decimal Quantity { get; set; }
    }

どうすればこの状況を解決できますか?

4

1 に答える 1

0

仮想キーワードの欠落に問題があります。

そのようなコードは私のために働きます:

[DataContract(IsReference = true)]
    public class Product
    {
        [Key]
        [ForeignKey("ProductType")]
        [DataMember]
        public int ProductTypeId { get; set; }

        [DataMember]
        public virtual ProductType ProductType { get; set; }

        [DataMember]
        public decimal Quantity { get; set; }
    }
于 2013-11-11T11:10:12.500 に答える