gpt4 book ai didi

c# - 有没有办法将属性映射到 Dapper 中的自定义类型?

转载 作者:太空宇宙 更新时间:2023-11-03 12:09:08 25 4
gpt4 key购买 nike

我们正在寻找 Dapper 来简化我们的映射逻辑。除了一件事,它看起来很有前途。我们为我们的 ID 使用自定义类型。例如:

public class MyEntityIdentity 
{
public int IdentityValue { get; }
public MyEntityIdentity(int identity) { IdentityValue = identity; }
}

public class MyEntity
{
public MyEntityIdentity Identity { get; set; }
int Prop1 { get; set; }
string Prop2 { get; set; }
bool Prop3 { get; set; }
}

SQL 表看起来像这样:

create table [dbo].[MyEntity] (
my_entity_id int identity(1,1) NOT NULL,
prop1 int NULL,
prop2 varchar(100) NULL,
prop3 bit NOT NULL

CONSTRAINT PK_MyEntity PRIMARY KEY CLUSTERED (my_entity_id ASC)
)

我们如何映射“Identity”属性?

最佳答案

您可以像这样使用自定义类型处理程序:

public class IdentityHandler : SqlMapper.TypeHandler<MyEntityIdentity>
{
public override MyEntityIdentity Parse(object value)
{
return new MyEntityIdentity((int)value);
}

public override void SetValue(IDbDataParameter parameter, MyEntityIdentity value)
{
parameter.Value = value.IdentityValue;
}
}

然后这样注册:

SqlMapper.AddTypeHandler(new IdentityHandler());

关于c# - 有没有办法将属性映射到 Dapper 中的自定义类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53340902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com