我有一个存储过程InsertCars,它接受用户定义的表类型列表CarType.
CREATE TYPE dbo.CarType
AS TABLE
(
CARID int null,
CARNAME varchar(800) not null,
);
CREATE PROCEDURE dbo.InsertCars
@Cars AS CarType READONLY
AS
-- RETURN COUNT OF INSERTED ROWS
END
Run Code Online (Sandbox Code Playgroud)
我需要从Dapper调用这个存储过程.我用Google搜索并找到了一些解决方案.
var param = new DynamicParameters(new{CARID= 66, CARNAME= "Volvo"});
var result = con.Query("InsertCars", param, commandType: CommandType.StoredProcedure);
Run Code Online (Sandbox Code Playgroud)
但是我收到一个错误:
过程或函数InsertCars指定了太多参数
存储过程也InsertCars返回插入行的计数; 我需要得到这个值.
问题的根源在哪里?
我的问题是我在通用列表中有汽车List<Car> Cars,我希望将此列表传递给存储过程.它优雅的方式存在怎么办?
public class Car
{
public CarId { get; set; }
public CarName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助
EDITED …
我使用Visual Studio 2013 Ultimate,Resharper 8和http://studiostyl.es/自己的配色方案.
我想在peek定义窗口中更改背景颜色,因为现在是黄色:(.
也许这会导致自己的配色方案.我不确定.可以在Visual Studio中更改窥视窗口的背景颜色吗?
现在看起来像这样:(

我有2个简单的表.
create table Owner
(
Id int primary key,
Name nvarchar(100),
);
create table Status
(
Id int primary key,
BrandName nvarchar(50)
OwnerId int foreign key references Owner(Id),
);
Run Code Online (Sandbox Code Playgroud)
在应用程序中,我将这些表映射到模型类:
public class Owner
{
public int Id {get;set;}
public string Name{get;set;}
public Status Status {get;set;}
}
public class Status
{
public int Id {get;set;}
public string Brand {get;set;}
public int OwnerId {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
我用dapper和dapper扩展.
我想在classmapper中的dapper中一对一地映射关系.这是可能的?
我的目标是当我添加所有者对象时,它还通过存储库设置了属性Status到db,它还插入了记录执行状态表.
实现这种行为的最佳方法是什么?
public class OwnerMapper : ClassMapper<Owner>
{
public OwnerMapper()
{
Table("Owner");
Map(p=>p.Id).Column("Id").Key(KeyType.Assigned);
Map(p=>p.Name).Column("Name");
//how …Run Code Online (Sandbox Code Playgroud) 如何创建或自定义将新解决方案文件夹添加到解决方案的快捷方式?
尝试在“选项”>“键盘”中查找,但无法为此找到操作。