Tag: entity framework

entity framework和SCOPE_IDENTITY

我有一个插入表中的存储过程然后执行此行 SET @returnVal = SCOPE_IDENTITY(); 之后我尝试了两个: SELECT @returnVal 和 return @returnVal 当我从Microsoft SQL Server Management Studio执行存储过程时,我使用SELECT @returnVal获得预期结果 – SELECT @returnVal插入数据的标识列。 但是,当我将存储过程添加到我的ADO.Net实体数据模型/ EntityFramework类/ .edmx类并在我的C#代码中执行存储过程时,我得到的值-1返回但是没有失败。 是否有可能获得我想要的值,新的身份值,返回? 我意识到我可以手动将存储过程绑定到我的模型中表的插入操作 – 但这不是一个选项。 每次重新生成模型类时,都需要执行此手动工作的插入过程太多。

使EF使用am:n具有附加属性的表

我在创建新应用时遇到了问题。 该应用程序是关于在特定日期进入的新员工。 由于他们需要一些硬件(如笔记本,键盘等),我们希望提供未来几天内将要出现的所有新员工的概述。 所以有以下型号: 条目: public class Entry{ public IEnumerable Hardware {get; set;} … } 硬件: public class Hardware{ public string Name {get; set;} public OrderStatus Status {get; set} } 订单状态: public enum OrderStatus{ Nothing, Ordered, Arrived, Ready } 起初这似乎很好,因为对于每个条目我都想创建一个新的硬件数据集(一对多)。 现在我决定维护一个硬件列表,并将硬件引用到条目中(多对多)。 问题是OrderStatus绑定到硬件,因此当一个硬件被引用到许多Employees并且Orderstatus被更改时,它将在所有条目上更改。 我认为正确的解决方案是使用第三个表(Entry_Id,Hardware_Id,OrderStatus)。 使用流畅的API,可以在新(第三)表中映射关系,但不可能向其添加新属性(OrderStatus)。 这有可能吗?

MVC3命名以数字开头的列

我是MVC3 C#的新手。 我需要在数据库中有一个名为3DSecureStatus的列用于遗留目的。 当我调用此列并在应用程序中插入时,我收到此错误: [ModelValidationException:在模型生成期间检测到一个或多个validation错误: System.Data.Edm.EdmProperty:Name:不允许指定名称:’_ 3 DSecureStatus’。 ] 在应用程序中,我将其定义为public string _3DSecureStatus { get; set; } public string _3DSecureStatus { get; set; } 因为它不喜欢3是列名的第一个字符。 有什么建议吗?

传递选择器函数时,OrderBy不会转换为SQL

当我执行: var t = db.Table1.OrderBy(x => x.Name).ToList(); 在SQL事件探查器中,这是已翻译的SQL: SELECT [Extent1].[ID] AS [ID], [Extent1].[Name] AS [Name] FROM [dbo].[Table1] AS [Extent1] ORDER BY [Extent1].[Name] ASC 哪个是对的。 但是,如果我将选择器函数传递给OrderBy: Func f = x => x.Name; var t = db.Table1.OrderBy(f).ToList(); 翻译的SQL是: SELECT [Extent1].[ID] AS [ID], [Extent1].[Name] AS [Name] FROM [dbo].[Table1] AS [Extent1] orderby完全没有翻译。 有什么问题? 它们是相同的lambda函数,唯一的区别在于第二种情况,它首先被赋值给一个变量。

使用Entity Framework和LINQ的未知列错误

我昨天开始使用EF,我很难将这个简单的查询转换为EF sintax 翻译: select a.city from offer o, address a, offer_address oa where o.identifier = oa.offeridentifier and a.identifier = oa.addressidentifier group by a.city order by count(*) desc 成: var cities = (from o in db.offer from a in db.address from oa in db.offer_address where (o.identifier == oa.offeridentifier && a.identifier == oa.addressidentifier) group a by a.city […]

如何在Entity Framework中访问context.Database.SqlQuery?

我正在尝试按照本教程: http://blogs.msdn.com/b/diego/archive/2012/01/10/how-to-execute-stored-procedures-sqlquery-in-the-dbcontext-api.aspx 但似乎无法访问此方法,它不会出现在智能上 context.Database.SqlQuery 我使用以下代码但似乎无法访问SqlQuery方法: using(Entities db = new Entities()) { }

EntityFramework DbContext生命周期+ Postgres:“一项操作已在进行中。”

我几天来一直在弄乱以下几天。 我有一个在Mono上运行的Nancy应用程序,带有Repository模式和UnitOfWork的EntityFramework,以及Postgres。 Nancy使用TinyIoC作为IoC容器。 我有一个Web应用程序,它在前端对请求进行排队,因此后端每次都会遇到一个请求。 一切正常。 但是,当我运行连接到同一后端的iOS应用程序并且没有将请求排队到后端时,麻烦就开始了,有时几乎同时触发请求。 随机间隔后端开始抛出此错误: 2016-09-20T13:30:16.120057436Z app[web.1]: System.Data.Entity.Core.EntityCommandExecutionException: An error occurred while executing the command definition. See the inner exception for details. —> System.InvalidOperationException: An operation is already in progress. 2016-09-20T13:30:16.120104535Z app[web.1]: at Npgsql.NpgsqlConnector.StartUserAction (ConnectorState newState) in :0 2016-09-20T13:30:16.120113254Z app[web.1]: at Npgsql.NpgsqlCommand.ExecuteDbDataReaderInternal (CommandBehavior behavior) in :0 2016-09-20T13:30:16.120119308Z app[web.1]: at Npgsql.NpgsqlCommand.ExecuteDbDataReader (CommandBehavior behavior) in […]

在linq的外部联接中使用filter

我有以下实体: public class Company { public string CompanyName { get; set; } public int ID { get; set; } } public class CompanyCurrency { public int Id { get; set; } public int CompanyId { get; set; } public decimal Rate { get; set; } public int CurrencyId { get; set; } } public class […]

为什么我的计数行的原始查询总是返回-1?

我正在尝试检查表是否存在,但无法正常工作。 由于某种原因,count总是返回-1。 我已经在数据库中有一个表。 它应该返回1? SearchEntities db = new SearchEntities(); var qry3 = “”; var sql4 = “SELECT Count(*) FROM SearchDB.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = ‘portland'”; var count = db.Database.ExecuteSqlCommand(sql4);

SQL Server对象资源管理器未显示数据库

这是一个非常小的代码优先EF6项目。 我添加了迁移并成功更新了数据库。 这是输出: PM> update-database -Verbose 使用StartUp项目’ChattyServer’。 使用NuGet项目’ChattyDataModel’。 目标数据库是:’ChattyDataModel.ChattyContext’(DataSource:。\ SQLEXPRESS,Provider:System.Data.SqlClient,Origin:Convention)。 没有待定的显式迁移。 运行种子方法。 但是,当我打开SQL Server对象资源管理器时,我找不到我的数据库: UPD : app.config – 我应该将哪个连接字符串用于LocalDb ? UPD :更新了app.config ,添加了: 然后创建了一个新的迁移并更新了一个数据库 SQL Server对象资源管理器中没有任何更改 UPD我将目录从master更改为chatty,创建了新的迁移并更新了db-still无法在SQL Server对象资源管理器中看到db