【问题标题】:Passing attributes as parameters and inserting into table将属性作为参数传递并插入表中
【发布时间】:2017-06-05 15:55:08
【问题描述】:

我有一个名为“用户”的数据库表,具有以下属性: UserId、姓名、CreatedAt、CreatedBy、ModifiedAt、ModifiedBy、地址、城市、省、国家、邮政编码、电话。

我需要做的是使用 CreateUser 方法创建一个名为 User Repository 的类。该方法将所有属性作为参数,并将分别插入到表中,即用户

谁能指导我如何做到这一点?

【问题讨论】:

  • 您当前的代码是否有任何问题?
  • 不,我是一只新蜜蜂。我有点困惑。我正在做的是我创建了另一个类并将所有属性作为成员。现在,当我将对象作为方法的参数传递时,它将采用所有属性。如何将其插入数据库?

标签: c# sql-server visual-studio model-view-controller


【解决方案1】:

创建一个包含所有属性的类

public class user {

public id UserId {get;set;}
public string Name {get;set;}
public string CreatedAt {get;set;}

public string createdBy {get;set;}
public string modifiedAt {get;set;}

public string modifiedBy {get;set;}
public string address {get;set;}

public string city {get;set;}
}

创建一个存储库 - 假设您有 UserDbContext。

// following method will insert new record into the database. 

    public void CreateUser(user data){
    _ctxmain = new UserDbContext();
    var newUser = new user {
    UserId = data.UserId,
    Name = data.Name,
    CreatedAt = data.CreatedAt,
    CreatedBy = data.CreatedBy,
    modifiedBy = data.modifiedBy,
    modifiedAt = data.modifiedAt,
    address = data.address,
    city = data.city

    };

    _ctxmain.User.Add(newUser);
    _ctxmain.SaveChanges();  // saving details to the User table in database

    }

【讨论】:

  • 这段代码会产生同样的结果吗? public static void CreateUser(User user) { if (user == null) throw new ArgumentNullException("user");尝试 { 使用 (UserDbContext 实体 = 新 UserDbContext ()) { user.CreatedAt = DateTime.Now;实体.用户.添加(用户);实体.SaveChanges(); } }
  • 是的,它是相同的代码。您使用实体而不是 _ctxmain。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-04
  • 1970-01-01
  • 1970-01-01
  • 2017-11-19
  • 2010-11-25
相关资源
最近更新 更多