gpt4 book ai didi

.net - LINQ to SQL 生成的对象可以解耦吗?

转载 作者:行者123 更新时间:2023-12-04 01:55:42 24 4
gpt4 key购买 nike

我喜欢 LINQ to SQL,但它生成的类似乎与它们存储的数据库紧密耦合,这似乎是一件坏事。

例如,使用 ye olde Northwind 数据库,如果我使用 Products 表创建 dbml,则 Product类生成。我可以在任何其他层使用这个类,这一切都很好,但是如果我决定我宁愿使用普通的旧 ADO.NET(或切换数据库),我将不得不重新创建 Product类,以及其他所有“模型”。

有没有解决的办法?还是单独创建对象模型,然后将表映射到它们?我已经尝试过提供的各种映射类,但还没有找到令人满意的答案。

最佳答案

所有这些答案,没有链接!也许我可以帮忙:

The attributes thing that damieng mentioned

The partial class thing that Marcus King mentioned

我曾多次经历过这个困难,最后我在上一个项目中所做的就是使用接口(interface)作为解决方案中所有不同项目之间共享的契约,并让部分类实现它。

[Table(Name="Products")]
public partial class Product: IProduct { }

是的,不幸的是,它需要一些反射魔法才能使其适用于 POCO 实现。

最后,如果你真的关心它,我会选择 NHibernate(我也不是很喜欢它),这正是 Garry Shulter 所描述的。

希望有帮助!

关于.net - LINQ to SQL 生成的对象可以解耦吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/222895/

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