【发布时间】:2016-01-21 13:50:02
【问题描述】:
我有一个像这样的模型 PersonalInfo:
public string FirstName { get; set;}
public string LastName { get; set;}
public string Email { get; set; }
public IEnumerable<Addresses> Addresses{ get; set; }
我的地址模型包括如下内容:
public int AddressId { get; set; }
public string StreedAddress { get; set; }
public string State { get; set; }
我需要使用存储过程将这些插入数据库,但我需要使用 dapper 来执行此操作..对不起,我是新人..我尝试了以下类似的方法,但它不起作用:
var Id = connection.Execute("usp_Insert", personalInfo, commandType: CommandType.StoredProcedure);
foreach (Addresses address in personalInfo.Addresses){
connection.Execute("Insert", new {address, Id}, null, commandType: CommandType.StoredProcedure);
};
我可能在这里做错了很多事情,我可以使用表值参数,但我不知道它如何与 dapper 一起使用。
更新:
所以我想如果我不想在第一个中传递地址,我可以将其排除在第一个发送之外吗?我仍然想一次传递整个模型而不是一个道具。
谢谢
【问题讨论】:
-
什么不起作用?在第二次调用中插入是存储过程吗?
-
另外,需要null参数吗?
-
它说:无法将值 NULL 插入列 ID ..
-
@Simon yes 在 usp_insert 和 Insert 中都是存储过程。
-
@Simon 现在它说“不存在从对象类型地址 .Data.Models.Addresses 到已知托管提供程序本机类型的映射。