의
또한 이런 식으로 일을 할 수 있어야한다 :
// perform insert with a linq expression
db.Insert.Into<PARTS_VI_PART_NUMBER>(
x => x.ITEM_NUMBER,
x => x.ITEM_CLASS_CODE,
x => x.ITEM_DESCRIPTION,
x => x.MANUFACTURER
).Values(
"TEST",
"TEST",
"TEST",
"TEST"
).Execute();
// update using linq expression
db.Update<PARTS_VI_PART_NUMBER>()
.Set(x => x.ITEM_DESCRIPTION == "UPDATED",
x => x.ITEM_CLASS_CODE == "UPDATED2")
.Where(x => x.ITEM_NUMBER == "TEST")
.Execute();
// delete inserted row with a linq expression
db.Delete<PARTS_VI_PART_NUMBER>(x => x.ITEM_NUMBER == "TEST").Execute();
는 적어도 그게 내가 내 프로젝트 중 하나를 해왔 방법이다.
Insert()
,
Update()
및
Delete()
메서드는
Context.cs
파일에
Context.tt
에 의해 생성됩니다 ("ActiveRecord"T4 파일 사용).
편집
오, 미안 해요, 난 당신의 질문을 읽어 FORST 때, 나는 당신이 에 쉬운 방법은 "삽입"또는 "업데이트"을 요구했다 생각했지만 다시 후 그것을 읽고, 나는 당신이 "삽입, 또는 업데이 트가 이미 있다면"처럼 'upsert'일을 요구 깨닫고.
죄송합니다. 내 대답은 실제로 그것을 다루지 않습니다. 나는 그것을하는 좋은 방법을 모른다. 나는 보통 당신이하는 일을 끝내기 만하면됩니다 ... 그것을 선택하려고 시도합니다. 결과가 나오지 않으면 삽입을하십시오.
걱정할 필요가 없습니다. – Jamsi
그냥 Rails의 find_or_create 도우미 메서드가 있기를 바란다 : P – Jamsi
오픈 소스 프로젝트 ... 자유롭게 추가하자;) 불행히도, 그것은 잘 지원되지 않는 것들 중 하나이다. Ansi sql은 'merge into'문을 제공하지만 모든 DB가이를 구현하지는 않습니다. 일부에는 고유 한 구문이 있습니다. 나는 SubSonic에 추가하는 것이 불가능할 것이라고 생각하지 않습니다. 지원되는 모든 DB에 대해 추가하고 테스트합니다. – CodingWithSpike