仅更新附加实体的某些字段

时间:2009-11-08 18:14:56

标签: entity-framework

我正在使用.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;} 
 ...........   
} 

更新附加设施的所有字段:

   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();   
    }  

我想更新除Password和LastLogin之外的所有字段。我可以更新单个字段,但对于具有大量字段的实体来说会很麻烦。

请告诉我,实现这个目标的最佳途径是什么?

谢谢。

2 个答案:

答案 0 :(得分:2)

在EDMX / model中将这两个属性的setter更改为private。

答案 1 :(得分:1)

我认为如果没有额外的编程工作,您无法直接使用EF。

有三种可能性:

  • 通过视图更新
  • 使用存储过程进行更新
  • 更改您的数据模型,以使密码和lastlogin位于具有一对一关系的单独表格中。

所有这些都需要额外的编程工作。