Entity Framework 7 Fluent APIがIsOptional()を認識しない

ハミドモサラ

現在、エンティティフレームワーク7を使用してAsp.Net 5プロジェクトでデータベースをセットアップしていますが、以前はEF 6を使用していたため、一部の列をnull許容にしたい場合は、次を使用します。

modelBuilder.Entity<Article>().Property(t => t.ArticleDateModified).IsOptional();

しかしIsOptional、もうEF7の一部ではないようです。どうすれば、EF7を使用して同じことを実現できるのでしょうか。

編集:マークの答えは確かに正しいです、最初は私が次のようなものを見つけたのでそれはうまくいきましたがIsOptional

builder.Entity<Article>().Property(t => t.ArticleDateModified).IsRequired(false);

しかし、それなしでいくつかのテストを実行した後、ドメインモデルでnull許容としてマークしたため、データベース列をnull許容に設定しました。

public DateTime? ArticleDateModified { get; set; }

また、DateTimenull許容値を作成してを使用するIsRequired(false)と、次のエラーが発生したことにも注意してください。

エンティティタイプ「Article」のプロパティ「ArticleDateModified」は、プロパティのタイプがnull許容型ではない「DateTime」であるため、null許容/オプションとしてマークできません。すべてのプロパティをnull許容/必須としてマークできますが、null許容タイプのプロパティで、主キーの一部ではないプロパティのみをnull可能/オプションとしてマークできます。

したがって、IsRequired(false)データベース列をnull許容にするために必要なのは、ドメインクラスでnull可能にすることだけである場合ここで何を使用するのでしょうか。

マークL.

このドキュメントページの注記に基づくと、これを宣言的に行うためのサポートは取り消されたようです。ウィットに:

CLRタイプにnullを含めることができないプロパティは、オプションとして構成できません。プロパティは常にEntityFrameworkによって必要と見なされます。

これは意図的には、GitHubの上でホスティング事業からの設計の議論で見ることができたことを、具体的

つまり、null許容としてマークされたプロパティはnull値をサポートしますが、null不可能としてマークされたプロパティにはnull値を含めることはできません。このことから、null許容でないCLRタイプのプロパティをnullを許可するものとしてマークすることは許可されません。これは、これが許可されているEF6の動作とは異なります。[強調を追加]


結果として、EF7では、NULL列はnull許容のマップされたプロパティを厳密に意味します。プロパティがnull許容の場合、。でNULLマークまたは構成しない限り、関連する列はnull可能である必要がありますIsRequired


OP編集への応答

それは興味深いことIsRequired(bool)です。最初はAPIに関するドキュメントを見ていませんでした6月の会議ノート、これはEF6と同等である述べいる議論のポイントを見つけましたIsOptional()

.IsOptional()-Required(false)を呼び出すことでこの機能を提供します
。.IsRequired()-同じ機能でRequired()を提供します

これが当初の意図であったとしても、サポートを取り消すという設計上の決定は10月から始まります。(更新ごとに)IsRequired(false)null許容でないプロパティを設定しようとすると、完全に削除されるのではなく、実行時エラーが発生します。

今余分ものの、APIは、有効なコードを壊すことなく取り外すことができません:それは別々に実装されていなかったIsRequired(bool)IsRequired()の定義が、単一でIsRequired(bool required = true)それが削除され、パラメータのないバージョンに置き換えられた場合、それは重大な変更になります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Entity Framework 7 Fluent API Doesn't Recognize IsOptional()

分類Dev

Entity Framework Code First with Fluent API Concurrency `DbUpdateConcurrencyException` Not Raising

分類Dev

Breeze and Entity Framework 7

分類Dev

Fluent API meaning in ASP.NET MVC when using Entity Framework

分類Dev

OnModelCreating undefined in Entity Framework 7

分類Dev

Entity Framework 5 Fluent APIを使用して、列名が異なる外部キーを設定するにはどうすればよいですか?

分類Dev

Entity Framework 7:無効な列名を生成しています

分類Dev

Entity Framework、Fluent APIマッピング、OnModelCreating以外の場所で実行する必要がありますか?

分類Dev

Entity Framework 7Beta7にはColumnTypeがありません

分類Dev

Paging with Entity Framework 7 and SQL Server 2008

分類Dev

Entity Framework 7 in memory database exception

分類Dev

Entity Framework7の関係

分類Dev

Entity Framework Core fluent apiOne-To-ManyおよびOne-To-Oneは重複する外部キーを生成します

分類Dev

Entity Framework Core (7): load single entity by id

分類Dev

Visual Studio Code Entity Framework Core Add-Migrationが認識されない

分類Dev

Entity Framework 7の列を変更しますか?

分類Dev

Entity Framework7の奇妙なキャッシュの問題

分類Dev

Entity Framework7での明示的なトランザクション

分類Dev

Entity Framework7とログインに失敗しました

分類Dev

Entity Framework7が日時の挿入に失敗する

分類Dev

Entity Framework7が日時の挿入に失敗する

分類Dev

Entity Framework7は.NETFramework 4.5で動作しますか?

分類Dev

Entity Framework7の移行をリセットする

分類Dev

Entity Framework7の移行でテーブルが作成されない

分類Dev

Entity Framework7外部キー列名

分類Dev

Entity Framework Core / 7SQLロギング

分類Dev

Entity Framework 7、Visual Studio 2015、コンソールコマンドが機能しない

分類Dev

Entity Frameworkのコア移行で-forceを認識しないのはなぜですか?

分類Dev

Entity Framework 7(コア):DataReaderを閉じる必要があります例外

Related 関連記事

  1. 1

    Entity Framework 7 Fluent API Doesn't Recognize IsOptional()

  2. 2

    Entity Framework Code First with Fluent API Concurrency `DbUpdateConcurrencyException` Not Raising

  3. 3

    Breeze and Entity Framework 7

  4. 4

    Fluent API meaning in ASP.NET MVC when using Entity Framework

  5. 5

    OnModelCreating undefined in Entity Framework 7

  6. 6

    Entity Framework 5 Fluent APIを使用して、列名が異なる外部キーを設定するにはどうすればよいですか?

  7. 7

    Entity Framework 7:無効な列名を生成しています

  8. 8

    Entity Framework、Fluent APIマッピング、OnModelCreating以外の場所で実行する必要がありますか?

  9. 9

    Entity Framework 7Beta7にはColumnTypeがありません

  10. 10

    Paging with Entity Framework 7 and SQL Server 2008

  11. 11

    Entity Framework 7 in memory database exception

  12. 12

    Entity Framework7の関係

  13. 13

    Entity Framework Core fluent apiOne-To-ManyおよびOne-To-Oneは重複する外部キーを生成します

  14. 14

    Entity Framework Core (7): load single entity by id

  15. 15

    Visual Studio Code Entity Framework Core Add-Migrationが認識されない

  16. 16

    Entity Framework 7の列を変更しますか?

  17. 17

    Entity Framework7の奇妙なキャッシュの問題

  18. 18

    Entity Framework7での明示的なトランザクション

  19. 19

    Entity Framework7とログインに失敗しました

  20. 20

    Entity Framework7が日時の挿入に失敗する

  21. 21

    Entity Framework7が日時の挿入に失敗する

  22. 22

    Entity Framework7は.NETFramework 4.5で動作しますか?

  23. 23

    Entity Framework7の移行をリセットする

  24. 24

    Entity Framework7の移行でテーブルが作成されない

  25. 25

    Entity Framework7外部キー列名

  26. 26

    Entity Framework Core / 7SQLロギング

  27. 27

    Entity Framework 7、Visual Studio 2015、コンソールコマンドが機能しない

  28. 28

    Entity Frameworkのコア移行で-forceを認識しないのはなぜですか?

  29. 29

    Entity Framework 7(コア):DataReaderを閉じる必要があります例外

ホットタグ

アーカイブ