问题标签 [entity-framework-4]
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.
linq-to-sql - 实体框架是否值得为新的小型应用迁移?
实体框架是否值得为新的小型应用迁移?大约 10 个表格和一个 WinForms 应用程序。
即替代方法是 DataTables/DataRows 或 Linq-to-SQL
c# - ADO.Net Entity Framework 自定义实体问题
对...呼叫所有实体框架专家...
我的数据库中有一个名为 Bob 的表,我的 EF 模型包含此表的精确映射/定义。我还有一个名为 Jim 的表,它也映射到我的实体模型。Bob 可以有多个 Jim,并且这种关系应该由外键约束来强制执行。所以这里的关系是玫瑰色的。但是,我还在名为 JimSnapshot 的 EF 模型中创建了自己的实体。该实体看起来与 Jim 实体完全相同。创建 Bob 时,会在该点拍摄 Jim 的快照,并将其作为非常扁平的 XML 存储在 Bob 中名为 JimSnapshotXML 的列中。
我想要做的是让 JimSnapshot 实体与 Bob 相关,并用 JimSnapshot 实体的填充版本替换 JimSnapshotXML 属性。或者至少让 Bob 可以访问 JimSnapshot 实体并隐藏 JimSnapshotXML 属性。
这可能吗?我该怎么做?这有什么意义吗?
本质上,我的目标是能够按如下方式访问上述内容(C#);
entity-framework - 使用 Entity Framework 4 进行全文 + 空间搜索
假设我有一个 SQL 2005 数据库,其中有一个名为 Restaurants 的表。餐厅表具有以下列:
- 餐厅编号
- 姓名
- 纬度
- 经度
我想让用户按名称和/或地址搜索餐馆。如何编写 LINQ 查询来支持这一点?我需要能够支持用户不输入姓名或地址、仅输入姓名、仅输入地址或同时输入姓名和地址的可能性。
我最初的想法是编写一个存储过程来计算两个纬度/经度对之间的距离和一个表值函数,用于调用 FREETEXTTABLE 并在我的查询中使用一些条件加入调用。但是,Entity Framework 4 似乎不支持表值函数。
c# - dotConnect 或 "sqlite.phxsoftware.com" 用于将实体框架与 SQLite 一起使用
在dotConnect或“ sqlite.phxsoftware.com ”中使用实体框架和 SQLite(在 C# 中)哪个是更好的选择?
entity-framework-4 - Entity Frameworks 4 - 更改模型不会更新 T4 自我跟踪模板文件
我正在使用自我跟踪实体,并已将实体类移动到另一个程序集,方法是使用“添加为链接”指向此处提到的 TT 文件。但是现在,当我更新模型(例如更改属性名称)时,模板不会自动运行,因此实体类不会更新。
我当然可以手动运行模板来获取更新,但如果它以我移动类之前的方式自动运行会更容易。有什么办法可以做到这一点?
达伦。
c# - C# 4.0/EF - SQL Server Compact 不支持服务器生成的键和服务器生成的值
我刚刚将我的一个项目移动到 VS2010/fx4.0 并使用 SQL CE 数据库作为后备存储。自从将其移至此版本的 .NET 后,我现在收到此错误:
SQL Server Compact 不支持服务器生成的键和服务器生成的值。
我的表是用用户名(字符串)和 DoorOpen(日期时间)的 PK 定义的,因为 SQLCE要求在 fx3.5 中的每个表上都有一个 PK。现在我在 fx4.0 中,我很难过。我已经用谷歌搜索了这个,我发现的每个答案都是:
SQLCE 不支持自动生成值(我肯定不需要),因此在此处放置一个 GUID ID 并从代码中填充它。
我尝试了这种方法,但我仍然遇到同样的错误!
SQLCE:
约束曾经是:
代码:
那么现在怎么办?这是 EF4 中的错误吗?难道我做错了什么?
TIA
笔记:
浏览 EDMX 文件(右键单击,使用 XML 打开),我发现我的日期列之一设置为StoreGeneratedPattern="Identity"。
然后我切换回漂亮的模型视图并单击数据库中的每一列以确保未设置。肯定是皮塔饼。看起来需要创建一个完美的小工具/插件......
postgresql - 无法在 VS10 中使用 .NET 4.0 显示在 EdmGen2 中生成的 edmx
我正在尝试从我的 Postgresql 数据库生成实体模型。在 .net 3.5 和 vs2008 下它运行良好。不幸的是,在 vs10 下它没有。我收到一个错误:
“该文件引用的 XML 命名空间与项目的目标框架不一致。”
我认为这是因为 EF4 使用的是 EDMX v2 而不是 v1,但我无法使用 EdmGen2 的 RetrofitModel 参数来更改它(ModelGen 下有类似的参数,但没有 RetrofitModel)。我尝试在 xml 中手动更改版本和引用,并且能够在设计器中显示 edmx 文件 - 虽然它是空的。
问题
如何从 Postgresql 数据库生成 VS10 的 EF4 设计文件?
.net - 如何减少 Entity Framework 4 查询编译时间?
摘要:我们遇到了 EF4 查询编译时间超过 12 秒的问题。缓存查询只能让我们走这么远;有什么方法可以真正减少编译时间?有什么我们可能做错的事情我们可以寻找吗?谢谢!
我们有一个通过 WCF 服务公开的 EF4 模型。对于我们的每个实体类型,我们公开了一个方法来获取和返回整个实体以进行显示/编辑,包括许多引用的子对象。
对于一个特定实体,我们必须 .Include() 31 个表/子表来返回所有相关数据。不幸的是,这使得 EF 查询编译速度非常慢:编译和构建一个 7,800 行、300K 的查询需要 12-15 秒。这是 Web UI 的后端,需要比这更敏捷。
我们能做些什么来改善这一点吗?我们可以 CompiledQuery.Compile 这个 - 在第一次使用之前不会做任何工作,因此有助于第二次和随后的执行,但我们的客户担心第一次使用也不应该很慢。同样,如果托管 Web 服务的 IIS 应用程序池被回收,我们将丢失缓存计划,尽管我们可以增加生命周期以最小化这种情况。此外,我看不到提前预编译和/或序列化 EF 编译查询缓存(缺少反射技巧)的方法。CompiledQuery 对象仅包含对缓存的 GUID 引用,因此它是我们真正关心的缓存。(写出来这件事发生在我身上,我可以从 app_startup 在后台启动一些东西来执行所有查询以编译它们 - 这安全吗?)
但是,即使我们确实解决了这个问题,我们也会根据我们正在搜索的参数使用 LINQ-to-Entities 子句动态构建搜索查询:我认为 SQL 生成器做得不够好,我们可以移动所有这些逻辑都进入 SQL 层,所以我认为我们不能预编译我们的搜索查询。这不太严重,因为搜索数据结果使用较少的表,因此编译时间仅为 3-4 秒而不是 12-15 秒,但客户认为最终用户仍然无法接受。
所以我们确实需要以某种方式减少查询编译时间。有任何想法吗?
- Profiling 指向 ELinqQueryState.GetExecutionPlan 作为开始的地方,我试图介入,但没有真正的 .NET 4 源可用,我无法走得很远,Reflector 生成的源不会让我介入函数或在其中设置断点。
- 该项目是从 .NET 3.5 升级的,因此我尝试在 EF4 中从头开始重新生成 EDMX,以防万一出现问题,但这并没有帮助。
- 我已经尝试过这里宣传的 EFProf 实用程序,但它看起来并没有帮助。无论如何,我的大型查询会使它的数据收集器崩溃。
- 我已经通过 SQL 性能调优运行了生成的查询,它已经有 100% 的索引使用率。我看不出数据库有什么问题会导致查询生成器出现问题。
- 执行计划编译器中是否存在 O(n^2) 的内容 - 是否将其分解为单独的数据加载块,而不是一次可能有帮助的所有 32 个表?将 EF 设置为延迟加载没有帮助。
- 我已经购买了 O'Reilly Julie Lerman EF4 的预发行书,但除了“编译您的查询”之外,我无法在其中找到任何帮助。
我不明白为什么需要 12-15 秒才能在 32 个表中生成单个选择,所以我很乐观,还有一些改进的余地!
感谢您的任何建议!我们在 SQL Server 2008 上运行以防万一,而 XP / 7 / server 2008 R2 使用 RTM VS2010。
sql - 如何使用实体框架在两个带有修订的表之间创建关系
因此,我正在重新设计一个小型数据库(可能还有一个更大的数据库),但想展示使用业务对象的修订/历史记录的价值。我正在将数据从 Access 切换到 MSSQL 2008。
我对在设计本身中使用什么版本的“修订历史”进行了很多内部辩论 - 并认为我已决定向所有表格添加一个“RevisionId”。
使用这种设计 - 向我们想要跟踪的所有表添加 RevisionId - 在两个表之间创建导航属性和关系的最佳方法是什么,例如
供应商可以有多个联系人。联系人本身将在修订中。它需要自定义扩展还是我想太多了?
提前致谢。
orm - Entity Framework v4 示例和概念模型映射教程
在我正在编写的应用程序中,我有一个相当复杂的数据库模型。我想使用 EF4 将其映射到一个更好的概念模型。然而,我读过的所有教程都包含 2 或 3 个表的样本,它们都将 1 对 1 映射到概念模型。
我想学习如何使用 VS 2010 将数据库模型正确映射到不同的概念模型。但是我找不到任何好的教程或(最好是)教学视频。
有人有任何提示、链接甚至书籍吗?