ユーザーの選択に基づいて特定のレコードを更新しようとしています。Entity Framework の構文に関しては、私はあまり詳しくありません。Entity Framework でこの SQL ステートメントを実現することは可能ですか?
ありがとうございました!
update Table1
set Colum1='1'
where Column2='1234567'
ユーザーの選択に基づいて特定のレコードを更新しようとしています。Entity Framework の構文に関しては、私はあまり詳しくありません。Entity Framework でこの SQL ステートメントを実現することは可能ですか?
ありがとうございました!
update Table1
set Colum1='1'
where Column2='1234567'
var record = _db.Table1.where(r => r.Column2 == '1234567');
record.Column1 = '1'
_db.SaveChanges();
_db は Entity Framework DbContext クラスです...
HTH。
はい、Linq バージョン:
Table1Entity entity = from e in dbContext.Table1Entitys
where e.Column2 = '1234567'
select e
entity.Column1 = '1';
dbContext.SaveChanges();
Sunny にはLambda バージョンがあるようです。
ただし、これもサニーの答えも、実際には両方とも SELECT と UPDATE を生成するため、正確な SQL を生成しません。
SELECT <all columns>
FROM <table>
WHERE Column2 = '1234567'
UPDATE <table>
SET <allcolumns> = <allvalues>, etc etc
WHERE Column2 = '1234567'
UPDATEだけが必要な場合は、次のようにします。
var row = new Row();
// assuming a single column PK (id)
row.Column1 = '1';
row.Column2 = '1234567';
dbContext.Attach(row);
var entity = dbContext.Entity(entity);
entity.Property(e => e.Column2).IsModified = true;
dbContext.SaveChanges();
正確に生成します:
UPDATE <Table>
SET Column2 = '1234567'
WHERE Column1 = '1'
// 注: ctx = あなたの DbContext
var tbl1 = (from t in ctx.Table1 where t.Id == 1234567 select t).FirstOrDefault();
if (tbl1 != null) {
tbl1.Column1 = "1";
ctx.SaveChanges();
}