私のデータモデルは現在非常に単純です。あなたにはユーザーがいて、レストランがあります。間には、「レビュー」と呼ばれる多対多の関係があります。Entity Framework - ナビゲーションプロパティをロードせずに、行を多対多のテーブルに追加する
レビューをデータベースに追加する場合は、レビューオブジェクトを保存する前にユーザーオブジェクトとレストランオブジェクトを取得する必要があります。これは、次のコードで行われます。
public class Review
{
// Other properties...
public User User { get; set; }
public Restaurant Restaurant { get; set; }
}
そして、私のユーザーとレストランクラスの両方レビューのリストが含まれています。
// The 'review' object is the object coming as parameter.
var restaurant = await _context.Restaurants.FindAsync(review.RestaurantId);
var user = await _context.Users.FindAsync(review.UserId);
var newReview = _context.Reviews.Add(new DataService.Entities.Review
{
// setting other values
Restaurant = restaurant,
User = user
}).Entity;
await _context.SaveChangesAsync();
私Review
クラスは、このようになります。
ナビゲーションプロパティとして設定するために両方のオブジェクトをロードしたくないので、これを行うより良い方法があると確信しています。私はちょうど方法を知らない。
私は.Netコア2.0とEntity Frameworkコアを使用しています。
これはほとんど間違いなく動作しますが、私はそれが流暢なAPIを使用しても可能ですかどうかを知りたいと思った:
あなたのサンプルケースでは、このようなものになるだろうか? – RandomStranger