2009-11-08 51 views
1

我正在使用.NET 3.5 SP1。我有實體 'APPUSER':僅更新附屬實體的一些字段

public class AppUser : System.Data.Objects.DataClasses.EntityObject{ 
public int Uid {get; set;} 
public string UserName {get; set;} 
public string Password {get; set;} 
public DateTime LastLogin {get; set;} 
public string Name {get; set;} 
public string Address {get; set;} 
public string Comment {get; set;} 
........... 
} 

要更新附加enitity的各個領域:

public void Update(AppUser updateUser) { 
    AppUser user = ctx.AppUserSet.Where(u => u.UserId == userId).FirstOrDefault(); 
    //This will update ALL fields 
    ctx.ApplyPropertyChanges(user.EntityKey.EntitySetName, updateUser); 
    ctx.SaveChanges(); 
    } 

我想更新除密碼和LastLogin各個領域。我可以更新單個字段,但對於具有大量字段的實體來說很麻煩。

請告訴,達到此目的的最佳方法是什麼?

謝謝。

回答

1

我不認爲你可以直接與EF做這個沒有額外的編程工作。

有三種可能性:

  • 更新通過視圖
  • 更新使用存儲過程
  • 改變你的數據模型,使得密碼和lastlogin是在一個單獨的表中有一個一個關係。

所有這些都需要額外的編程工作。

2

在EDMX /模型中將這兩個屬性的setter更改爲private。

相關問題