0

以下は私のクラスです

public class Item
{
    public int ItemID { get; set; }

    [Required(ErrorMessage = "Unit of measure1 is required.")]
    public int Uom1Id { get; set; }
    public UnitOfMeasure Uom1 { get; set; }

    [Required(ErrorMessage = "Unit of measure2 is required.")]
    public int Uom2Id { get; set; }
    public UnitOfMeasure Uom2{ get; set; }
}

public class UnitOfMeasure
{
    public int UnitOfMeasureID { get; set; }
    public string MeasureName { get; set; }
}

以下の私のイニシャライザ:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();

        modelBuilder.Entity<Item>().HasRequired(x => x.StockUnitOfMeasure)
       .WithMany()
       .HasForeignKey(x => x.StockUnitOfMeasureId).WillCascadeOnDelete(false);

        modelBuilder.Entity<Item>().HasRequired(x => x.PurchaseUnitOfMeasure)
           .WithMany()
           .HasForeignKey(x => x.PurchaseUnitOfMeasureId).WillCascadeOnDelete(false);

    }

コードを作成します。

<div class="editor-label">
        @Html.LabelFor(model => model.Uom1Id, "Stock Unit Of Measure")
    </div>
    <div class="editor-field">
        @Html.DropDownList("Uom1Id", String.Empty)
        @Html.ValidationMessageFor(model => model.Uom1Id )
    </div>

私は EF を初めて使用します。属性 [Required] がフィールド Uom1Id および Uom2Id で機能しない理由はわかりませんが、他のクラスの他のフィールドでは機能します。

キー 'Uom1Id' を持つ ViewData アイテムはタイプ 'System.Int32' ですが、タイプ 'IEnumerable' である必要があります。

ありがとう

4

1 に答える 1

0

int価値のある型であるため、null にすることはできません。そのため、 andにRequired属性を追加する必要はありません。UI の場合は、(nullable)となるビューモデルを作成できます。Uom1IdUom2IdUom1IdUom2Idint?

于 2012-03-28T11:28:50.980 に答える