0
업데이트 Linq에서 간단한 SQL Server 업데이트를 시도 할 때까지 모두 잘 실행되었습니다. 내 코드 :Linq SQL
DataClasses1DataContext db = new DataClasses1DataContext("mySQLServer");
db.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["mySQLServer"].ToString();
var results = (from bl in db.a_Bellows_Lots
where bl.Job == this.theJob
where bl.BellowsLot == this.theLot
select bl).SingleOrDefault();
results.Quantity = this.theQuantity;
try
{
db.SubmitChanges();
}
catch (Exception ex)
{
error += " " + ex.Message;
그러나 값은 변경되지 않습니다. 나는 이것을 LinqPad에서 모델링했다.
string JobNumber = "A2559038A";
string LotNumber = "17213A";
var results = (from bl in a_Bellows_Lots
where bl.Job == JobNumber
where bl.BellowsLot == LotNumber
select new
{
bl.Quantity
}).SingleOrDefault();
results.Quantity = 1;
this.SubmitChanges();
이 나에게의 설계 시간 오류 준다 "때에 프로퍼티 또는 인덱서 'AnonymousType # 1.Quantity는'할당 할 수 없습니다 -이 읽기 전용입니다."
나는 전에이 디자인 모델을 사용했습니다 그것은 작동합니다
DataClasses1DataContext db = new DataClasses1DataContext("mySQLServer");
db.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["mySQLServer"].ToString();
var results = (from x in db.a_Cleaning_Logs
where x.CleaningLogID == CleaningLogID
select x).SingleOrDefault();
results.EndTime = EndDate;
results.EmployeeOut = employeeOut;
results.CleaningDone = cleaningDone;
db.SubmitChanges();
는 차이가 무엇입니까; 내가 도대체 뭘 잘못하고있는 겁니까?
실제 질문은 무엇입니까? 중간 부분에 대한 예외는 그곳의 문제를 잘 설명합니다. 왜 윗부분이 데이터베이스를 변경하지 않는지 묻고 있습니까? –
익명 형식으로 db에서 결과를 캐스팅하기 때문에 두 번째 쿼리는 실패합니다. 첫 번째는 제대로 작동하는 것처럼 보입니다. 값을 변경하기 위해 하드 코딩을하면 어떻게됩니까? 실제로 같은 값으로 "변경"하고있을 가능성이 있습니까? – Jonathan
수량은 3이었고 코드를 "results.Quantity = 123;"으로 변경했습니다. 그 값은 변하지 않았다. 그래서 저는 그것을 다른 가치로 바꾸려고합니다. –