gpt4 book ai didi

dapper - 不要使用 dapper 扩展更新 Update 方法上的某个属性

转载 作者:行者123 更新时间:2023-12-01 02:21:55 29 4
gpt4 key购买 nike

我知道我可以使用纯粹的 dapper 来构建我的更新字符串,其中只有我想要更新的属性(白名单)。

我想要的是保持 dapper 扩展的 ORM 风格:

con.Update<Person>(person);

我希望人的某些属性不被更新(黑名单)

如何排除运行 .Update 扩展方法更新的属性?

你可能知道一个更好的 .Update 扩展名的 dapper 风格吗? (那我就不用

写下来 ;-)

最佳答案

只需定义一个 PersonMapper继承自 ClassMapper<Person>并使用 Ignore()映射要排除的列。

请参见下面的示例(来源:github tests for Dapper Extensions),其中 Phones属性 ( IEnumerable<Phone> Phones ) 被排除在外。

using System;
using System.Collections.Generic;
using DapperExtensions.Mapper;

namespace DapperExtensions.Test.Data
{
public class Person
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime DateCreated { get; set; }
public bool Active { get; set; }
public IEnumerable<Phone> Phones { get; private set; }
}

public class Phone
{
public int Id { get; set; }
public string Value { get; set; }
}

public class PersonMapper : ClassMapper<Person>
{
public PersonMapper()
{
Table("Person");
Map(m => m.Phones).Ignore();
AutoMap();
}
}
}

关于dapper - 不要使用 dapper 扩展更新 Update 方法上的某个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19823010/

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