次のシナリオがあります...
- 大規模なマイクロ ORM
- .NET フレームワーク 4.0
- SQL Server 2008R2
モデル:
public class sUser : DynamicModel
{
public sUser() : base(Model.strConnection, "Users", "UserId") { }
}
public class Test
{
public void UpdateUser(string user)
{
dynamic User = GetUser(user);
//Dynamically generated User object has many columns
// I Update following fields...
User.Address1 = "123 Main Street";
User.Address2 = "Suite# 456";
User.CityName = "Princeton";
User.State = "NJ";
User.Zipcode = "08540";
//And update some more fields in Users object
//I could do this...
//var upd = new { Address1 = "123 Main Street", Address2 = "Suite# 456", ...};
//User.Update(upd, User.UserID);
//But would like to pass entire object, so I do not have to form all updated name/value in the update statement
User.Update(User, User.UserID);
//But Users table has a column with IDENTITY SEED,
//And if I pass entire object for update it errors out
//Cannot update identity column 'RefNo'
}
public dynamic GetUser(string userName)
{
dynamic table = new sUser();
var objUser = table.First(UserName: userName);
return objUser;
}
}
ユーザー テーブルには の列 RefNo がありIDENTITY SEED=1
、ユーザー オブジェクト全体を更新するとエラーが発生し、ID 列 'RefNo' を更新できません。長い更新ステートメントを作成するのではなく、更新のためにオブジェクト全体を渡したいと思います。
どうすればこれを処理できますか?
ありがとう。