草庐IT

mobiledevice.framework

全部标签

c# - 在运行时更改 Entity Framework 数据库架构

在大多数ASP.NET应用程序中,您可以通过在运行时修改连接字符串来更改数据库存储。即我可以通过简单地更改连接字符串中“数据库”字段的值来从使用测试数据库更改为生产数据库我正在尝试使用EntityFramework更改架构(但不一定是数据库本身),但没有成功。我看到的问题是edmxxml文件中的SSDL内容存储了每个实体集的模式。见下文现在我已经将模式属性值从测试更改为“prod”并且它有效..但这似乎不是一个好的解决方案。我需要更新evert实体集和存储过程(我有+50个表)我只能在编译时执行此操作吗?如果我随后尝试更新实体模型-由于EF无法识别该表已存在于edm中,因此正在读取已存

c# - Entity Framework - 使用数据注释的属性的默认值

我有一个这样的模型publicclassMyModel{publicintMyModelId{get;set;}publicstringName{get;set;}publicstringDescription{get;set;}publicstringTitle{get;set;}}我想知道是否有一种方法,使用数据注释,将属性的值(比如标题)设置为其他属性值的默认值,即名称。像这样的东西:if(MyModel.Title=="")MyModel.Title=MyModel.Name; 最佳答案 如果您想要默认值,请在实体默认(无参

c# - Entity Framework 6.1.0 SaveChangesAsync

我有EF帮助程序类可以异步保存更改:publicasyncTaskSaveOrUpdateAsync(TEntityentity)whereTEntity:class,IContextEntity{if(entity.Id==0)context.Set().Add(entity);else{TEntitydbEntry=context.Set().Find(entity.Id);if(dbEntry!=null)dbEntry=entity;}returnawaitcontext.SaveChangesAsync();}publicvoidSave(){TasksaveEntit1As

c# - Entity Framework 指南

我正在尝试使用SQLServer2008设置EntityFramework。我将Guid用于表上的键。有没有办法设置它以便数据库自动生成key?我尝试将“RowGuid”设置为true,并将列的默认值设置为“(newid())”。无论哪种方式,映射类仍然需要我在C#端给它一个Guid。有什么想法吗? 最佳答案 Notyet:17.4.CanIuseaserver-generatedguidasmyentitykey?Unfortunately,inv1oftheEFthisisnotsupported.Whileitispossib

c# - 分层 Entity Framework 查询异常

我正在尝试使用EntityFramework构建分层集合-请参阅下面的查询-给定公司中的每个成员都有一个父成员-但是在尝试执行此操作时我得到以下异常:System.NotSupportedException:Thetype'Member'appearsintwostructurallyincompatibleinitializationswithinasingleLINQtoEntitiesquery.Atypecanbeinitializedintwoplacesinthesamequery,butonlyifthesamepropertiesaresetinbothplacesan

c# - .NET Entity Framework 插入与批量插入

当我使用我的xxxContext对象并向表发出多个添加时,EntityFramework如何将其解析为SQL?它会循环执行insertintoxxx还是如果有数百行,它是否足够智能以发出批量插入命令?奖励问题:如果它不发出批量插入,是否有办法强制它发出,这样我的数据库性能就不会被单独的插入破坏?还是批量处理到临时表,然后像Upsert一样合并到原始表? 最佳答案 任何ORM工具的缺点是它“很啰嗦”。大多数时候这就足够了。有时不是。简短的回答是“不”。这就是为什么有时我仍然会选择IDataReader而不是EF或NHibernate等

c# - Entity Framework 给出异常 : "The underlying provider failed on Open."

我有一个测试。发生的情况是,无论何时首先执行test1,test2都会失败并显示消息:"System.Data.EntityException:System.Data.EntityException:theunderlyingproviderfailedonopen.cannotopendatabase"DBEntities"requestedbythelogin.Theloginfailed.".只要先执行test2,test1就会失败并显示相同的消息。过去3天我一直在处理这个问题。[TestClass]classMyTestClass{DBEntitiesdb;[TestIniti

c# - 在 Entity Framework 中使用唯一约束交换值

我对Navigations表的名为Index的列有唯一约束。我有两个Navigation实体,我想交换它们的Index值。当我调用db.SaveChanges时,它会抛出一个异常,表明违反了唯一约束。似乎EF正在更新一个值,然后更新另一个值,因此违反了约束。难道不应该在事务中同时更新它们,然后在整理出值且不违反约束后尝试提交吗?有没有不使用临时值的方法解决这个问题? 最佳答案 这不是EF的问题,而是SQL数据库的问题,因为update命令是顺序执行的。事务与此无关——所有约束都是按命令而不是按事务验证的。如果您想交换唯一值,您需要更

c# - 如何从 Entity Framework 6 中的 Auditlog 实体获取 ID

我知道那里有几篇类似的帖子,但我找不到任何解决此问题的帖子。我想在EntityFramework6中添加、更改或删除实体(软删除)时添加(某种)AudioLog。我已经覆盖了SaveChanges,因为我只想为添加、修改的EntityStates添加日志条目或已删除,我会在第一次调用SaveChanges之前获取列表。问题是,因为我需要记录已执行的操作,所以我需要检查实体的EntityState。但是在调用SaveChanges之后,所有条目的EntityState都保持不变。publicoverrideintSaveChanges(){using(varscope=newTransa

c# - 如何在 Entity Framework Code First 中表示 Bridge 表

我正在尝试找出如何表示两个实体(多对多关系)之间的桥接表我首先使用实体​​框架代码Student:StudentIDintPKStudentNameVARCHAR(50)Class:ClassIDintPKClassNameVARCHAR(50)StudentClass:StudentIDINTPKClassIDINTPK我应该在EntityFrameworkCodeFirst中使用什么最好的类结构来表示它,我如何从桥接表中选择并插入其中。我应该像这样表示类吗:publicclassStudent{publicintStudentId{get;set;}publicstringStud