は、私は次のエンティティがあるとします。エンティティフレームワークLINQツーエンティティのエントリを更新するために条件を追加する方法
public class Library
{
public int ID { get; set; }
public ICollection<Book> Books { get; set; }
public Library()
{
Books = new HashSet<Book>();
}
}
public class Book
{
public int ID { get; set; }
public int LibraryID { get; set; }
public string Title { get; set; }
public string Author { get; set; }
public DateTime PublicationDate { get; set; }
public bool CheckedOut { get; set; }
}
は、ライブラリの束があり、各図書館は本の束を持っています。 ID = 1のライブラリの誰かがID = 42の本をチェックするので、CheckedOut
プロパティをtrueに更新します。どのような理由であれ、私はすでに図書館のIDと本のIDを知っていますが、他の情報は知っていません。私は、データベースからすべての書籍データをフェッチすることなく、比較的簡単にちょうどCheckedOut
プロパティを更新することができます。
Book book=new Book(){
ID=42,
LibraryID=1,
CheckedOut=true
}
context.Books.Attach(book);
var entry=context.Entry(book);
entry.Property(b=>b.CheckedOut).IsModified=true;
context.SaveChanges();
ここに私の質問です。この書籍でデータベースのLibraryID
が1
でない場合、どのようにして強制的に失敗させることができますか?単純なSQLで書くことができる
UPDATE Books SET CheckedOut=1 WHERE ID=42 AND LibraryID=1
エンティティフレームワークで同じことをするにはどうすればよいですか?あなたは、例えば、ユーザが、あなたが.Attach(book)
を使用する場合1.