我想创建DTO,以防止根据元数据或第二种类型进行属性分配。
前段时间,我偶然发现了一个可以做到这一点的库,但是我不记得它的名字了。
public class SomeDto
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
var a = new SomeDto
{
FirstName = "John",
LastName = "Doe"
};
var b = new SomeDto();
b.FirstName = a.FirstName;
b.FirstName = a.LastName;
因为FirstName
和LastName
的属性或第二种类型会有所不同。
所以最终的模型会这样:
public class FirstNameMetadataAttribute : Attribute { }
public class LastNameMetadataAttribute : Attribute { }
public class SomeDto
{
[FirstNameMetadataAttribute]
public string FirstName { get; set; }
[LastNameMetadataAttribute]
public string LastName { get; set; }
}
public class FirstNameConstrain<T> : SomeLibraryType<T> { }
public class LastNameConstrain<T> : SomeLibraryType<T> { }
public class SomeDto
{
public FirstNameConstrain<string> FirstName { get; set; }
public LastNameConstrain<string> LastName { get; set; }
}
考虑到所有这些,将其扩展到数据库模型,这也将使LINQ查询不易出错。