私は次の問題を解決できないようで、オンラインで役立つものを見つけることができません。私は.NetCoreを初めて使用し、null許容参照型を使用することも初めてです。どういうわけか、それらをEFCoreと連携させることができません。外部キーがnull許容である1対多の関係を含むデータテーブルがあります(つまり、関係にアイテムがない可能性があります-この例では、すべてのアセットにAssetTypesがあるわけではありません)。以前は機能していた流暢なAPIは
modelBuilder.Entity<Asset>(entity =>
{
entity.HasOne(d => d.AssetType)
.WithMany(p => p.Assets)
.HasForeignKey(d => d.AssetTypeId)
.HasConstraintName("FK_Assets_AssetTypes");}
問題はAssetType以来ですか?null許容型です私は今取得しています
'p'はここではnullの可能性があります... p.Assetsに関する警告
そして、メッセージを抑制してそれが機能することを期待する以外に、それを回避する方法を見つけることができないようです。他の多対多の関係は手動で処理する必要はなく、処理する必要があります。EFCoreは、私が間違っていない限り、多対多で非常に原始的であるように見えます。
AssetTypeエンティティから始めて関係を逆にしようとしましたが、同様の結果が得られます。
私も使ってみました
.WithMany()
ただし、これにより既存のナビゲーションプロパティが削除されるため、機能しません。
私は明らかに何かが欠けているので、どんな助けでもいただければ幸いです。
マッピング式を構成するときに、同様の状況が発生しました。結局、書かれた式は実行されないので、警告を消すことにしました。内部の魔法を実行するためにEFによってのみ解析されます。あなたの場合、それはこのようになります(対処する必要はありません#pragma warning disable
)
modelBuilder.Entity<Asset>(entity =>
{
entity.HasOne(d => d.AssetType)
.WithMany(p => p.Assets!)
// ^ this '!' tells to compiler to stop bothering you about this
// null dereference because you are sure the code is right
.HasForeignKey(d => d.AssetTypeId)
.HasConstraintName("FK_Assets_AssetTypes");}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加