Tag: entity framework

entity frameworkIsRowVersion()没有并发检查

我们有一个表,其中有一个名为Version的列,它被映射为SQL rowversion 。 这样做是因为我们有一个外部系统映射到我们的数据,这些数据依赖于每次更新表时更改的列。 最初我们希望这由SQL处理,但现在我们发现我们有Optimistic Concurrencyexception。 虽然这些例外是为了保护数据被覆盖,但对于我们的情况,我们并不关心这一点。 我们只是希望timestamp继续递增,而entity framework不会检查它是否存在并发问题。 有没有办法做到这一点? 制图: Property(t => t.Version).IsRowVersion();

将子实体移动到新的父实体

将子实体从一个父实体移动到另一个父实体的最佳方法是什么? ObjectContext或DbContext中是否有一个允许我们完成此操作的方法? public class Person { public int PersonId public ICollection Cars } public class Car { public int CarId public string Color } 编辑:我目前正在使用EF 4.0模型首先使用POCO模板。

entity framework4.2:获取正确的数据库错误

在我的ASP.NET MVC 3应用程序中,我使用EF 4.2。 在我的数据库中,我对列有一个唯一的约束。 我尝试插入相同的数据,以便看到我得到的但我收到以下错误: 更新条目时发生错误。 有关详细信息,请参阅内部exception 在内部exception内部,我可以看到关于唯一约束的完整错误。 但是如何才能唯一地捕获此exception以告诉用户: 您再次输入相同的值。 这是我目前所做的事情: try { UpdateModel(conditionType, null, null, new string[] { “ConditionTypeId” }); _conditionTypeRepository.Save(); return RedirectToAction(“conditiontype”); } catch (Exception ex) { ModelState.AddModelError(“”, “There was an error while updating: ” + ex.Message); } 但这是一种通用方法。 我想做的是提供一个特定的消息。 有什么想法吗? 编辑: 我累了下面但是这次它没有抓住它: catch (SqlException ex) { if (ex.Number == 2627) { […]

如何使用linq查询ASP.NET MVC 5entity framework填充视图模型

好的,这是MVC 5 ASP.NETentity framework通过范围输入收集表单数据的后续工作,我的数据库结构包含一个包含许多类别的调查,一个包含许多问题的类别,然后一个问题包含许多QuestionResults,最后是QuestionResults许多CategoryResults,在HomeController中我通过ViewModel绑定模型,但我现在要求通过Linq的上下文填充我的实体, 任何帮助将不胜感激。 我需要填充这个ViewModel,它是在一个非常有价值的堆栈溢出贡献者和我的实体的帮助下创建的,所有代码如下: 主要问题: 如何将我的实体引入SurveyVM ViewModel实例? 视图模型 namespace MyApp { public class SurveyVM { public int ID { get; set; } public string Name { get; set; } public List Categories { get; set; } } public class CategoryVM { public int ID { get; set; } public string Name { get; […]

如何使Fluent API配置与MVC客户端validation一起工作?

我更喜欢使用Fluent API配置到DataAnnotation,因为我想将模型与数据访问分开。 我在MVC中尝试过,Fluent API不能与客户端validation一起使用。 简而言之,有一种简单的方法可以使Fluent API与客户端validation一起工作,因为DataAnnotation可以做到吗?

测试数据库调用C#

首先,让我们在这里解决术语。 我搜索的所有内容都说:“unit testing不会触及数据库!” 我不想进行unit testing。 我想要一个测试,当我将数据发送到数据库时,我知道它正确地保存了它(以及测试其他crud操作)。 我有一个基本上接受DTO的存储库层,然后将该DTO映射到entity framework模型,然后将该模型保存到数据库。 我需要能够确保将DTO发送到这些方法实际上是保存到数据库中。 存储库上的示例方法签名是: public bool Save(SomeObjectDTO someObject) 我只需要测试此方法调用是否返回true。 设置测试的最佳方法是将调用的方法保存到数据库中? 此外,是否有标准的方法来设置空白测试数据库? 如果我点击“运行测试”它会构造一个空数据库,用必要的初始数据填充它,然后执行所有CRUD操作(我的所有存储库调用)以查看它们都像它们一样保存,那将是很棒的应该。 如果这已经得到了回答,我表示歉意,但是我搜索到的所有内容都有人说你不应该测试数据库调用,或者人们在谈论嘲笑这些在这里真的没用。 我只想要一个关于如何设置这些类型的测试的示例和/或标准实践。

entity framework4.1从数据库表列描述中动态检索标量属性的摘要

我正在使用Entity-Framework 4.1数据库优先方法。 我有一个遗留数据库,每个表列都有描述。 当您在数据库图表中查看这些描述时,它非常有用。 在同一个entity framework中, DataContext具有每个标量值的Summary属性。 我想知道有什么办法可以从数据库加载这些描述并将它们映射到标量属性Summary吗? 我会很感激任何指示

在c#entity framework3.5中进行透视

ISO Code description Year value CAD Canadian Dollar 2009 1.3001 CAD Canadian Dollar 2010 1.3001 CAD Canadian Dollar 2011 0.0001 EUR Euro 2009 1.0000 EUR Euro 2010 1.0000 EUR Euro 2011 0.0001 USD US Dollar 2009 1.2300 USD US Dollar 2010 1.2300 USD US Dollar 2011 0.0001 表格1 ISO Code description 2009 2010 2011 CAD […]

使用Max + 1创建用户友好的唯一序列号的替代方法

我在我的asp.net mvc web应用程序中有了存储库方法,以自动生成一个名为Tag的唯一序列号: – public void InsertOrUpdateServer(TMSServer server, string username) { if (server.TMSServerID == default(int)) { // New entity int technologyypeID = GetTechnologyTypeID(“Server”); Technology technology = new Technology { IsDeleted = true, Tag = “S” + GetTagMaximumeNumber(technologyypeID).ToString(), StartDate = DateTime.Now, }; Save(); //code goes here GetTagMaximumeNumber()函数的位置是: – public int GetTagMaximumeNumber(int typeID) { string s = […]

entity framework多态关联

我将很快使用Entity Framework作为预订系统(从头开始制作)。 我一直在做一些原型,试图弄清楚在项目启动之前我想做什么(我还在与客户讨论要求等)。 考虑这种情况: 我有预订,预订可以有相关的资源,可以预订,但这些资源可以不同,并有不同的字段等。 我之前从未真正使用EF,所以我不知道如何实现这种多态性,我在其他项目中使用它(我们一直在使用原始SQL)。 C#模型看起来像这样: public class Booking { public int BookingID { get; set; } public DateTime StartTime { get; set; } public DateTime EndTime { get; set; } public IRessource Ressources { get; set; } … } public interface IRessource { public int RessourceTypeId { get; set; } } public class […]