问题标签 [linq-to-entities]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4276 浏览

linq - 将 Linq 与 WCF 一起使用

我正在寻找在 WCF(n 层应用程序)上使用 Linq 的任何示例或指南。请指定您显示的是 Linq-to-SQL 还是 Linq-to-entities。我想看看两者的用法示例。

我想知道诸如延迟执行之类的事情如何在 WCF 上工作(如果它确实有效)?循环引用支持等等...

任何使本文成为将 Linq 与 WCF 结合使用的快速入门指南的信息都会有所帮助。

0 投票
1 回答
3363 浏览

c# - 实体框架和 ASP.NET 的最佳实践

我一直在让自己发疯,试图让实体框架在 ASP.NET 环境中按预期(或至少按我预期)工作,特别是在尝试保存到数据库时处理属于不同上下文的对象。

处理实体框架和 ASP.NET 时的最佳实践是什么?

0 投票
5 回答
1252 浏览

linq - Persistence framework?

I'm trying to decide on the best strategy for accessing the database. I understand that this is a generic question and there's no a single good answer, but I will provide some guidelines on what I'm looking for. The last few years we have been using our own persistence framework, that although limited has served as well. However it needs some major improvements and I'm wondering if I should go that way or use one of the existing frameworks. The criteria that I'm looking for, in order of importance are:

  1. Client code should work with clean objects, width no database knowledge. When using our custom framework the client code looks like:

    SessionManager session = new SessionManager(); Order order = session.CreateEntity(); order.Date = DateTime.Now; // Set other properties OrderDetail detail = order.AddOrderDetail(); detail.Product = product; // Other properties

    // Commit all changes now session.Commit();

  2. Should as simple as possible and not "too flexible". We need a single way to do most things.

  3. Should have good support for object-oriented programming. Should handle one-to-many and many-to-many relations, should handle inheritance, support for lazy loading.
  4. Configuration is preferred to be XML based.

With my current knowledge I see these options:

  1. Improve our current framework - Problem is that it needs a good deal of effort.
  2. ADO.NET Entity Framework - Don't have a good understanding, but seems too complicated and has bad reviews.
  3. LINQ to SQL - Does not have good handling of object-oriented practices.
  4. nHibernate - Seems a good option, but some users report too many archaic errors.
  5. SubSonic - From a short introduction, it seems too flexible. I do not want that.

What will you suggest?

EDIT:

Thank you Craig for the elaborate answer. I think it will help more if I give more details about our custom framework. I'm looking for something similar. This is how our custom framework works:

  1. It is based on DataSets, so the first thing you do is configure the DataSets and write queries you need there.
  2. You create a XML configuration file that specifies how DataSet tables map to objects and also specify associations between them (support for all types of associations). 3.A custom tool parse the XML configuration and generate the necessary code. 4.Generated classes inherit from a common base class.

To be compatible with our framework the database must meet these criteria:

  1. Each table should have a single column as primary key.
  2. All tables must have a primary key of the same data type generated on the client.
  3. To handle inheritance only single table inheritance is supported. Also the XML file, almost always offers a single way to achieve something.

What we want to support now is:

  • Remove the dependency from DataSets. SQL code should be generated automatically but the framework should NOT generate the schema. I want to manually control the DB schema.
  • More robust support for inheritance hierarchies.
  • Optional integration with LINQ.

I hope it is clearer now what I'm looking for.

0 投票
2 回答
2335 浏览

.net - 根据关联值过滤 EntityDataSource

我真的很喜欢 Entity Framework,但有一些关键部分对我来说是一个挑战。谁能告诉我如何过滤关联列上的 EntityDataSource ?EF 隐藏了 FK 值,而是有一个 Association 属性。给定一个具有 PersonType 关联的实体 Person,如果我想按类型过滤我的 Person 实体,我会期望这样的事情:

或者

甚至

但这些都不起作用。有人知道怎么做吗?

0 投票
3 回答
3580 浏览

c# - 使用 WCF 连接到实体

我的 edmx 文件中有一个单独的项目中的所有实体,我使用 WCF 服务将它们公开给我的客户端应用程序。

这意味着我不必为我的客户端应用程序提供指向包含 edmx 文件的项目的直接链接。那会很糟糕,因为它会延续对象来查询数据库。

但只有我的 WCF 服务使用的实体可以从我的客户端应用程序访问。例如,因为我的服务中有以下代码:

..我可以在我的客户端应用程序中使用访问 MyClass ,例如:

如果我的 edmx 文件中有一个名为 MyClass2 的实体,我想在我的客户端应用程序中使用它,那该怎么办!如何在不给我的客户直接链接到我的 edmx 文件项目或在我的服务层中创建一个返回 MyClass2 的无用方法的情况下实例化它

其他人在做什么?

非常感谢

0 投票
6 回答
6842 浏览

c# - 如何检查 ObjectQuery 中是否存在 OrderBy表达树

我正在使用 T4 为 LINQ to Entities 实体生成存储库。

存储库包含(除其他外)适合分页的 List 方法。Supported and Unsupported Methods的文档没有提到它,但你不能Skip在 unordered 上“调用” IQueryable。它将引发以下异常:

System.NotSupportedException:方法“Skip”仅支持 LINQ to Entities 中的排序输入。方法 'OrderBy' 必须在方法 'Skip' 之前调用。

我通过允许通过部分方法定义默认排序来解决它。但是我在检查表达式树是否确实包含OrderBy.

我已将问题减少到尽可能少的代码:

这不是我真正的实现!

但我的问题是,我该如何实现该IsSorted方法?问题是 LINQ to Entities 查询始终是类型ObjectQuery,它实现了IOrderedQueryable.

那么我应该如何确保OrderBy表达式树中存在方法呢?是解析树的唯一选择吗?

更新
我添加了另外两个重载以明确这不是关于如何向存储库添加排序支持,而是如何检查ProvideDefaultSorting部分方法是否确实向OrderBy表达式树添加了一个。

问题是,第一个部分类是由模板生成的,而部分类的第二部分的实现是由团队成员在另一个时间完成的。您可以将其与 .NET Entity Framework 生成 EntityContext 的方式进行比较,它允许为其他开发人员提供扩展点。因此,我想尝试使其健壮,并且在ProvideDefaultSorting未正确实施时不会崩溃。

所以也许问题更多,我怎样才能确认ProvideDefaultSorting确实向表达式树添加了排序。

更新 2
新问题已得到回答并被接受,我想我应该更改标题以更匹配问题。或者我应该留下当前的标题,因为它会引导有同样问题的人使用这个解决方案?

0 投票
1 回答
1327 浏览

.net - 如何在 Visual Basic 中使用 LINQ to Entities?

我创建了一个包含两个项目的 .NET 解决方案:

  1. ToyData(Visual Basic 类库)

  2. ToyOne(Visual Basic WPF 应用程序)

ToyData 项目包含Toy.edmx,这是一个从名为 Toy 的数据库生成的 ADO.NET 实体数据模型。

ToyOne 项目包含此Window1.xaml.vb文件:

它在自动生成的Toy.Designer.vb文件中引发此运行时异常:

我究竟做错了什么?

0 投票
5 回答
6923 浏览

.net - 如何使用部分类扩展 ADO.NET Entity Framework 对象?

我创建了一个包含 Toy.edmx 的 Visual Basic WPF 应用程序项目,这是一个从名为 Toy 的数据库生成的 ADO.NET 实体数据模型。

它的Window1.xaml.vb文件如下所示:

那运行得很好。

但是,如果我添加文件Client.vb ...

...并将 WHERE 子句添加到我的Window1.xaml.vb查询中...

...然后我得到这个 NotSupportedException:

LINQ to Entities 无法识别“Boolean IsWashington()”方法,并且该方法无法转换为存储表达式。

如何使用部分类扩展 ADO.NET Entity Framework 对象?

0 投票
2 回答
2351 浏览

.net - 如何将业务逻辑放入我的 ADO.NET Entity Framework 类中?

我想使用 ADO.NET Entity Framework 进行数据访问,为我的业务逻辑扩展它的对象,并将这些对象绑定到我的 UI 中的控件。

正如另一个问题的答案中所解释的,我无法使用部分类扩展 ADO.NET 实体框架对象并在 LINQ 查询中使用我的自定义方法。

ADO.NET 实体框架部分类 http://img221.imageshack.us/img221/7329/clientsq0.gif

我不希望 Intellisense 中出现会产生运行时错误的方法!我应该如何构建我的应用程序以避免这个问题?

VB.NET LINQ 与自定义方法 http://img83.imageshack.us/img83/1580/iswashingtongn0.gif

我需要一个数据访问客户端类和一个业务逻辑客户端类吗?这似乎会让人感到困惑。

0 投票
3 回答
2538 浏览

entity-framework - 实体框架和 LINQ To SQL - 利益冲突?

过去一周,我一直在博客圈上看到 Linq to SQL 已死 [EF 和 Linq to Entities 万岁]。但是当我阅读 MSDN 上的概述时,在我看来 Linq to Entities 生成 eSQL 就像 Linq to SQL 生成 SQL 查询一样。

现在,由于底层实现(并且由于 SQL Server 还不是 ODBMS)仍然是关系存储,在某些时候实体框架必须将转换为 SQL 查询。为什么不修复 Linq to SQL 问题(m:m 关系,仅支持 SQL 服务器等)并使用 Linq to SQL in 作为生成这些查询的层?

这是因为性能还是 EF 使用不同的方式将 eSQL 语句转换为 SQL?

在我看来 - 至少对于我没有学识的头脑来说 - 很自然地适合在 EF 中将 Linq 转为 SQL。

评论?