我喜欢 LINQ to SQL,但它生成的类似乎与存储它们的数据库紧密耦合,这似乎是一件坏事。
例如,使用旧的 Northwind 数据库,如果我使用 Products 表创建 dbml,Product
类已生成。我可以在任何其他层中使用此类,这一切都很好,但如果我决定宁愿使用普通的旧 ADO.NET(或切换数据库),我将不得不重新创建Product
类,以及其他所有“模型”。
有没有解决的办法?或者单独创建对象模型,然后将表映射到它们?我已经尝试过提供的各种映射类,但尚未找到令人满意的答案。
所有这些答案都没有链接!也许我可以帮忙:
damieng提到的属性
马库斯·金提到的部分阶级的事情
我已经多次经历过这个困难,我最终在上一个项目中所做的就是使用接口作为解决方案中所有不同项目之间共享的契约,并让部分类实现它。
[Table(Name="Products")]
public partial class Product: IProduct { }
是的,不幸的是,需要一些反射魔法才能使其适用于 POCO 实现。
最后,如果你真的关心它,我会选择 NHibernate(我也不太喜欢它),它正是 Garry Shulter 所描述的那样。
希望有帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)