小巧玲珑的创作者萨姆藏红花是应解决了这个要求,其他SO用户提出的问题在这里 。一探究竟。
另外,如果你想使用Sam在他的回答中提到的Dapper Extensions库 ,你可以从Github或Nuget获得它。
这是一个忽略图书馆测试项目属性的例子。
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.Contrib内置支持将列标记为计算: 添加ComputedAttribute以允许在Insert上支持计算列 。以下是它的工作原理:
class MyModel
{
public string Property1 { get; set; }
[Computed]
public int ComputedProperty { get; set; }
}
插入时将忽略使用Computed
属性标记的属性。