0

私は Entity Framework を初めて使用し、EF5 Code First を使用して新しい ASP.NET MVC プロジェクトに着手しようとしています。

EF を試しているときに、データベースで自動的に生成される外部キー フィールドが NULL を許可していることに気付きました。これらのフィールドに Null を許可しないように、コードでどのように構成するのだろうか?

例(簡潔にするために編集):

public class Shop
{
    int Id { get; set; }
    string Name { get; set;

    // Navigation Property.
    Certificate Certificate { get; set; } // ******
}

public class Certificate
{
    int Id { get; set; }
    string Descrip { get; set; }
}

強調表示したナビゲーション プロパティは、Certificate_Id と呼ばれる DB の Shop テーブルにフィールドを自動的に生成しますが、NULL を許可するので、NULL を許可しないように指定したいと思います。

Fluent API を使用してこれを行うにはどうすればよいですか?

4

3 に答える 3

2

このようにしてみてください:

public class TempContext : DbContext
{
    public DbSet<Shop> Shops { get; set; }
    public DbSet<Certificate> Certificates { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Shop>().HasRequired(x => x.Certificate);
    }
}
于 2013-08-06T08:06:14.580 に答える
1

Requiredこの属性を使用して、プロパティを必須としてマークすることができます。

MSDN

これがあなたの例です:

public class Shop
{
    int Id { get; set; }
    string Name { get; set;

    [Required]
    Certificate Certificate { get; set; }
}

ここでは、さまざまな注釈について説明します。

于 2013-08-06T07:42:31.213 に答える