没有数据库外键的 ORM
Posted
技术标签:
【中文标题】没有数据库外键的 ORM【英文标题】:ORM without database foreign key 【发布时间】:2015-08-13 10:48:34 【问题描述】:我有一个旧数据库,其中表没有主外键关系。而且我现在无法更改/添加数据库中的关系。
我正在尝试使用Entity Framework
或ORM tool
。请告诉我在这种情况下是否可以使用任何 ORM?如果不是,那么设计我的 DAL 的合适方法是什么?
我正在使用ASP.NET Web API
。
【问题讨论】:
【参考方案1】:看看 Dapper.NET
Official Github page here Intro CodeProject article here由于它基本上“水合”了任意 SQL 语句返回的任何内容,因此它甚至能够处理如此糟糕的数据库设计 - 只要您可以用 T-SQL 表达您的查询,Dapper 就可以为您构建一些不错的.NET 对象。
Dapper 也是 *** 本身使用的轻量级 ORM :-)
【讨论】:
非常感谢。我一直在寻找这样的东西。【参考方案2】:只要您的数据库表具有主键,您就可以使用 Entity Framework 进行基本操作,例如将表行映射到 C# 对象以及执行 LINQ-to-Entity 查询。
但是,如果没有外键,您将无法利用 navigation properties。这意味着与拥有适当的外键相比,许多事情将更加手动和冗长,但您仍然应该能够进行任何您想要的数据操作。
【讨论】:
如果你能帮助我,我如何通过实体框架在 SQL Server 中调用我的存储过程。我试过了,但是要么报错,要么什么都不返回。以上是关于没有数据库外键的 ORM的主要内容,如果未能解决你的问题,请参考以下文章
用于在 Python 或 Ruby 中自动映射外键的 ORM 库