使用dapper插入存储过程(可能是tvp)

时间:2016-01-21 13:50:03

标签: dapper dapper-extensions dapper-rainbow dapper-fluentmap dapper-fastcrud

我有一个类似于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);
        };

我可能在这里做了很多错事,我可以使用一个有价值的桌子,但我不知道它如何与小巧玲珑有关。

更新:

所以我想如果我不想在第一个地址中传递地址,我可以将其排除在先发送吗?我仍然希望一次传递整个模型而不是一个道具。

由于

1 个答案:

答案 0 :(得分:2)

问题在于,精巧的人无法通过存储过程告诉他们需要什么参数。有数据库API可以查询,但这样做的成本非常高。对于常规查询,它可以很好地理解需要什么,但对于存储过程:它们是神秘的。因此,精打细算只是试图包含它能看到的一切。

你最好的选择是&#34;新的&#34;选择参数所需属性的投影。

相关问题