以下是典型的,对我来说Update
方法L2S。我对这很多(L2S &业务应用程序开发)仍然相当新,但这只是感觉错误。就像那里必须是一个更聪明的方法。不幸的是,我很难想象它,并希望有人能够提供一个例子或指引我朝着正确的方向发展。LINQ to SQL中更好的UPDATE方法
要在黑暗中进行刺探,我是否拥有Person Object
,将所有这些字段都作为属性?那么,什么?
这是多余的,因为L2S已经将我的人员表映射到一个类?
这只是“是怎么一回事呢”,你最终结束了传递30个参数(以上)到UPDATE
声明在某些时候?
作为参考,这是一个使用C#,WinForms,.Net 3.5和L2S而不是SQL 2005 Standard的商业应用程序。
这是我的典型更新电话。这是在一个文件(BLLConnect.cs)与其他CRUD方法。 连接是持有tblPerson
数据库的名称当用户点击save()
这就是最终调用所有这些领域具有潜在的,被更新 - >
public static void UpdatePerson(int personID, string userID, string titleID, string firstName, string middleName, string lastName, string suffixID,
string ssn, char gender, DateTime? birthDate, DateTime? deathDate, string driversLicenseNumber,
string driversLicenseStateID, string primaryRaceID, string secondaryRaceID, bool hispanicOrigin,
bool citizenFlag, bool veteranFlag, short ? residencyCountyID, short? responsibilityCountyID, string emailAddress,
string maritalStatusID)
{
using (var context = ConnectDataContext.Create())
{
var personToUpdate =
(from person in context.tblPersons
where person.PersonID == personID
select person).Single();
personToUpdate.TitleID = titleID;
personToUpdate.FirstName = firstName;
personToUpdate.MiddleName = middleName;
personToUpdate.LastName = lastName;
personToUpdate.SuffixID = suffixID;
personToUpdate.SSN = ssn;
personToUpdate.Gender = gender;
personToUpdate.BirthDate = birthDate;
personToUpdate.DeathDate = deathDate;
personToUpdate.DriversLicenseNumber = driversLicenseNumber;
personToUpdate.DriversLicenseStateID = driversLicenseStateID;
personToUpdate.PrimaryRaceID = primaryRaceID;
personToUpdate.SecondaryRaceID = secondaryRaceID;
personToUpdate.HispanicOriginFlag = hispanicOrigin;
personToUpdate.CitizenFlag = citizenFlag;
personToUpdate.VeteranFlag = veteranFlag;
personToUpdate.ResidencyCountyID = residencyCountyID;
personToUpdate.ResponsibilityCountyID = responsibilityCountyID;
personToUpdate.EmailAddress = emailAddress;
personToUpdate.MaritalStatusID = maritalStatusID;
personToUpdate.UpdateUserID = userID;
personToUpdate.UpdateDateTime = DateTime.Now;
context.SubmitChanges();
}
}
所以,如果我正确理解事情,我会在我的Winform UI中使用一个datacontext
引用,我将在填充字段时使用该引用,还会为UPDATES,INSERTS和DELETES添加引用。正确?
如果你正在更新这种方式,我认为你需要去通过一些MVC教程,如http://nerddinnerbook.s3.amazonaws.com/Intro.htm – 2010-04-26 19:21:31
@Nicholas:这是否适用于非Web应用程序作为好?谢谢。 – 2010-04-26 19:25:04