【问题标题】:Update ONLY some fields of attached Entity仅更新附加实体的某些字段
【发布时间】:2009-11-09 21:27:29
【问题描述】:

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

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

请告诉我,实现这一目标的最佳方法是什么?

谢谢。

【问题讨论】:

    标签: entity-framework


    【解决方案1】:

    在 EDMX/模型中将这两个属性的设置器更改为私有。

    【讨论】:

      【解决方案2】:

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

      有三种可能:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-09
        • 2018-01-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多