0

私は現在クラスを持っています:

[Table("TitleCategoryMovie", Schema = "dbo")]
public class TitleCategoryMovie
{
    [Key]
    public int Id { get; set; }

    public string CreatedBy { get; set; }
    public DateTime CreateDatetime { get; set; }
    public string UpdatedBy { get; set; }
    public DateTime UpdateDatetime { get; set; }

    [ForeignKey("Id")]
    public virtual Title Title { get; set; }
}

と呼ばれるテーブルがありますTitle。そして、すべてTitleCategoryMovieに対応するがありますが、すべてにに対応するわけTitleではありません。Titleの列は、TitleCategoryMovieでも同じです。しかし、両方のエンティティクラスをDbContextに追加すると、エラーが発生します。TitleTitleCategoryMovieId

Multiplicity is not valid in Role 'TitleCategoryMovieStandalone_Title_Source' in relationship 'TitleCategoryMovieStandalone_Title'. Because the Dependent Role refers to the key properties, the upper bound of the multiplicity of the Dependent Role must be �1�.

Idの列をTitleCategoryMovie主キーと外部キーとしてすでに定義してTitleいるので、なぜこのエラーが発生するのかわかりません。どうしたの?

4

2 に答える 2

0

また、フィールドを追加して、そのフィールドを属性TitleIdのパラメーターとして使用する必要があります。[ForeignKey]

[Table("TitleCategoryMovie", Schema = "dbo")]
public class TitleCategoryMovie
{
    [Key]
    public int Id { get; set; }

    public string CreatedBy { get; set; }
    public DateTime CreateDatetime { get; set; }
    public string UpdatedBy { get; set; }
    public DateTime UpdateDatetime { get; set; }
    public int TitleId { get; set; }

    [ForeignKey("TitleId")]
    public virtual Title Title { get; set; }
}

コメント後に更新

私はこのようなものがうまくいくと信じています:

[Table("TitleCategoryMovie", Schema = "dbo")]
public class TitleCategoryMovie
{
    [Key]
    public int Id { get; set; }

    public string CreatedBy { get; set; }
    public DateTime CreateDatetime { get; set; }
    public string UpdatedBy { get; set; }
    public DateTime UpdateDatetime { get; set; }

    public virtual Title Title { get; set; }
}

[Table("Title", Schema = "dbo")]
public class Title
{
    [Key]
    [ForeignKey("TitleCategoryMovie")]
    public int Id { get; set; }
    public string Something { get; set; }

    public virtual TitleCategoryMovie TitleCategoryMovie { get; set; }
}

[ForeignKey]リレーションシップの子と見なすクラスに属性を配置する必要があります。

于 2012-05-29T13:55:54.953 に答える
0

2 つのエンティティを 1 つのテーブルにマッピングしていました。どうやらこれは Entity Framework では許可されていないため、そのエラーが発生していました。

于 2012-05-29T16:55:07.347 に答える