标签: ado.net-entity-data-model

如何向ADO.NET实体添加约束?

我知道如何将一组字段标记为ADO.NET实体中的主键,但我还没有找到声明唯一约束或检查约束的方法.

设计器或框架上是否缺少此功能?

entity-framework ado.net-entity-data-model unique-constraint entity-framework-4

7
推荐指数
1
解决办法
2003
查看次数

实体框架不为表或过程生成类

我正在使用Entity Framework在C#中生成类和函数,我需要与SQL服务器进行交互.

作为参考,这是我的一个表:

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Area](
    [ID] [bigint] identity (1, 1) primary key,
    [Name] [nvarchar](100) NOT NULL
    )
GO
Run Code Online (Sandbox Code Playgroud)

运行实体数据模型向导(使用'数据库中的EF Designer')后,我的项目有edmx文件和一些新的.cs文件,但似乎它没有生成它需要的所有内容.

例如,在我的DatabaseEntities类中,我得到了:

    public virtual DbSet<Area> Areas { get; set; }
Run Code Online (Sandbox Code Playgroud)

但是,"区域"类型(以及其他三种缺失类型)没有定义.我也缺少存储过程的功能.

我已经尝试删除新文件并重新运行模型向导,但我得到了相同的结果.

有没有其他人遇到这个?

图片的标题说明:

我在最近的几次尝试中注意到,当向导运行时我也遇到错误:"未在项目上安装Entity Framework包".但是,当我点击它时,它仍然生成edmx和model.context.

我对Entity Framework版本6.0.0和6.1.2都有同样的问题.

重新安装框架对问题没有影响.

更新:

卸载nuget并重新安装最新版本允许我通过nuget安装EntityFramework而不会出错.但是,现在Add New Item对话框中缺少ADO.NET数据模型.

c# sql-server entity-framework ado.net-entity-data-model

7
推荐指数
2
解决办法
2万
查看次数

MSDTC问题与ADO.NET实体框架中的事务

在我们当前的项目中,我们使用ADO.NET Entity Framework作为应用程序的数据层.有些任务需要在事务中运行,因为在数据库中有很多工作要做.我正在使用TransactionScope来包围这些任务.

using (TransactionScope transactionScope = new TransactionScope(TransactionScopeOption.RequiresNew))
{
    // Do something...
    transactionScope.Complete();
}
Run Code Online (Sandbox Code Playgroud)

问题是我在使用TransactionScope时发生异常:

System.Data.EntityException:基础提供程序在Open上失败.---> System.Transactions.TransactionManagerCommunicationException:与底层事务管理器的通信失败.---> System.Runtime.InteropServices.COMException(0x80004005):错误HRESULT E_FAIL已从调用COM组件返回.

似乎此错误必须与MSDTC(Microsoft分布式事务处理协调器)执行某些操作.当我更改MSDTC的安全配置时,会抛出另一个异常:

System.Data.EntityException:基础提供程序在Open上失败.---> System.Transactions.TransactionManagerCommunicationException:已禁用分布式事务管理器(MSDTC)的网络访问.请使用组件服务管理工具在MSDTC的安全配置中启用DTC以进行网络访问.

但是,MSDTC已配置,TransactionScope将导致错误.有人知道这里出了什么问题吗?

.net msdtc transactions ado.net-entity-data-model

6
推荐指数
2
解决办法
2万
查看次数

ADO.NET实体框架ObjectContext - 缓存问题

我想知道将实体框架的ObjectContext对象缓存在Cache中是否明智; 这会给我带来多个连接的问题,同时用户会遇到问题吗?

我遇到了错误:'连接当前已关闭',并想知道这是否是由于多个用户和缓存ObjectContext,或者是否与多次刷新或停止页面并快速执行其他操作有关(我们这样做是为了得到错误).

.net c# linq entity-framework ado.net-entity-data-model

6
推荐指数
2
解决办法
2772
查看次数

在编写自定义和经常更新的网站时,ADO.NET实体框架(使用ASP.NET MVC v2)是否可行?

我刚刚完成了在这里找到的MvcMusicStore教程.这是一个包含工作源代码的优秀教程.到目前为止,我最喜欢的MVC v2教程之一.

该教程是我第一次使用ADO.NET实体框架的介绍,我必须承认,其中大部分都非常快速和直接.但是,我担心可维护性.当客户向其网站请求需要新字段,表格和关系的其他功能时,此框架的可自定义性如何?

我非常担心无法有效执行客户的变更单,因为实体模型基本上是拖放式的,计算机生成的代码.我使用代码生成器的经验并不好.如果模型的内容出现问题,我就无法将humpty-dumpty重新组合在一起怎么办?

从长远来看,我想知道使用人类可以阅读和编辑的手型模型是否比使用实体框架更有效.

有没有人在实体框架上工作得足以说他们在一个非常流畅的开发环境中使用它很舒服?

asp.net asp.net-mvc ado.net ado.net-entity-data-model

6
推荐指数
1
解决办法
509
查看次数

循环引用和WCF

我使用POCO Generator生成了我的POCO实体,我的数据库中有超过150个表.我在包括客户端在内的所有应用层共享POCO实体.我在我的上下文中禁用了LazyLoading和ProxyCreation.我在我的数据访问和业务层之上使用WCF.

现在,当我将poco实体返回给我的客户端时,我收到错误消息" 基础连接已关闭"我启用了WCF跟踪并发现了确切的错误:包含循环,如果禁用参考跟踪,则无法序列化.

我看了MSDN,发现在DataContract方法中设置IsReference = true的解决方案,但我没有使用DataContracts来装饰我的POCO类,我认为也不需要它.如果我用DataContract属性修饰一个类,我不会将它称为POCO

然后,我找到了解决方案,例如在我的ServiceContracts上应用自定义属性[CyclicReferenceAware].这确实有效,但我想把这个问题提交给社区,看看其他人如何管理这个问题,以及为什么微软没有提供内置的支持来解决循环问题序列化POCO类时的引用

.net wcf entity entity-framework ado.net-entity-data-model

6
推荐指数
1
解决办法
4440
查看次数

ADO.NET实体数据模型BUG

我在SQLITE中有一个visual studio ultimate 2010(MVVM)和数据库项目.

一切正常,但现在我有ADO.NET实体数据模型的问题.

我搜索了有关这方面的信息,并没有找到太多.. 每次我想打开向导,它只是关闭.

我想我应该重新安装Visual Studio,但在此之前,如果有人之前有过这个错误并知道可能是什么,我将不胜感激.

c# wpf visual-studio-2010 ado.net-entity-data-model

6
推荐指数
1
解决办法
5390
查看次数

多个数据库提供者的一个实体框架模型

我以前使用Entity Framework为数据库生成模型.问题是Entity Framework为特定的提供者(SQL Server,Oracle等)生成模型.如何生成可与许多提供程序一起使用的模型.

我想过用这个DbProviderFactory类手工制作我自己的数据访问层.但是从头开始构建模型涉及很多工作,这就是为什么我想知道我是否可以生成一个与多个提供商一起工作的实体框架模型?!!!

c# database entity-framework ado.net-entity-data-model

6
推荐指数
1
解决办法
3895
查看次数

从数据库更新模型不会从数据库添加新表

我创建了一个ADO.NET实体数据模型.一切正常,直到我在我的数据库中添加了新表.所以我想将该表添加到我的数据模型中.我按照以下步骤操作:右键单击我的模型 - >从数据库更新.比向导打开,我选择了我要添加的内容.当我展开表树时,我添加到数据库中的表就在那里.我检查一下,点击完成.没有错误,一切都成功完成,但我的模型没有任何变化.该表未添加到我的模型中.有谁知道为什么会这样?

database entity-framework ado.net-entity-data-model

6
推荐指数
1
解决办法
6774
查看次数

EF6 中仍然支持模型定义的函数吗?

这里讨论模型定义的函数:

EF6.1.2 支持这些吗?

我正在逐步完成 Edm/DbModel 的内容,但我一生都无法弄清楚 csdl 中的 <Function> 元素应该在哪里进行解析,因为它没有将其放入 EdmModel (EdmModel.AddItem( EdmFunction) 没有被调用)

ExpressionConverter.FindFunction 在 EdmModel._functions 中查找,并且 _functions 仅由 EdmModel.AddItem(EdmFunction) 添加,并且仅由扩展方法 EdmModelExtensions.AddFunction() 调用,并且我在 EntityFramework 源代码中找不到调用该函数的任何位置。我一定错过了一些简单的东西......

更多:我放弃了在 edmx 中定义函数,现在我以编程方式创建 EdmFunction 并将其添加到自定义 IConceptualModelConvention.Apply() 方法中:

    class CustomFunctionConvention : IConceptualModelConvention<EdmModel>
    {
        public void Apply(EdmModel item, DbModel model)
        {
            var functionPayload = new EdmFunctionPayload () {
                CommandText = "CAST (strValue AS int)",
                Parameters = new [] {
                    FunctionParameter.Create("strValue", PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.String).GetEdmPrimitiveType(), ParameterMode.In),
                },
                ReturnParameters = new [] { …
Run Code Online (Sandbox Code Playgroud)

ado.net entity-framework ado.net-entity-data-model

6
推荐指数
1
解决办法
1697
查看次数