将 SimpleDB(与 SimpleSavant)与 POCO/现有实体一起使用,而不是我的类上的属性
我正在尝试在我的应用程序中使用 Simple Savant,以使用
我目前拥有的 SimpleDB(例如)
public class Person
{
public Guid Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public DateTime DateOfBirth { get; set; }
}
要将其与 Simple Savant 一起使用,我必须将属性放在类声明之上,并且属性 - [DomainName("Person") )] 位于类上方,[ItemName] 位于 Id 属性上方。
我将所有实体都放在一个单独的程序集中。 我也有我的数据访问类一个单独的程序集,并且类工厂根据配置选择 IRepository (在本例中,IRepository
我希望能够使用我现有的简单类 - 无需在属性等上具有属性。 。 如果我从简单的数据库切换到其他东西 - 那么我只需要创建 IRepository 的不同实现。
我应该创建一个“DTO”类型类来将两者映射在一起吗?
有更好的办法吗?
I'm trying to use Simple Savant within my application, to use SimpleDB
I currently have (for example)
public class Person
{
public Guid Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public DateTime DateOfBirth { get; set; }
}
To use this with Simple Savant, i'd have to put attributes above the class declaration, and property - [DomainName("Person")] above the class, and [ItemName] above the Id property.
I have all my entities in a seperate assembly.
I also have my Data access classes an a seperate assembly, and a class factory selects, based on config, the IRepository (in this case, IRepository
I want to be able to use my existing simple class - without having attributes on the properties etc..
In case I switch out of simple db, to something else - then I only need to create a different implementation of IRepository.
Should I create a "DTO" type class to map the two together?
Is there a better way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您应该查看有关 无类型操作的 Savant 文档。无类型操作允许您使用动态构造的映射而不是数据/模型对象与 Savant 进行交互。例如,您可以为您的 Person 类创建一个动态映射,如下所示:
使用此方法时没有功能限制,因为这些 ItemMappings 是 Savant 在内部用于所有操作的内容。使用此方法只需要做更多的工作来理解和设置映射。
以下是使用此方法检索 Person 对象的方法:
You should check out the Savant documentation on Typeless Operations. Typeless operations allow you to interact with Savant using dynamically constructed mappings rather than data/model objects. You could, for example, create a dynamic mapping for your Person class like this:
There are no functional restrictions when using this method because these ItemMappings are what Savant uses internally for all operations. It just takes a bit more work to understand and setup your mappings with this method.
Here's how you would retrieve a Person object using this method: