草庐IT

Entity-Framework

全部标签

c# - 属性 'name'是对象关键信息的一部分,不能修改。 Entity Framework

我正在尝试更新记录,但在context.SaveChanges();之后收到此错误消息Theproperty'name'ispartoftheobject'skeyinformationandcannotbemodified.这是更新函数的代码:if(context.EAT_SourceNames.Any(e=>e.name==newSourceName)){MessageBox.Show("NamealreadyexistsintheDatabase");}else{varnameToUpdate=context.EAT_SourceNames.SingleOrDefault(e=>

c# - Entity Framework 5 MaxLength

我正在使用EF4和我发现的一段代码来从这样的实体获取MaxLength值:publicstaticint?GetMaxLength(stringentityTypeName,stringcolumnName){int?result=null;using(fooEntitiescontext=newfooEntities()){TypeentType=Type.GetType(entityTypeName);varq=frommetaincontext.MetadataWorkspace.GetItems(DataSpace.CSpace).Where(m=>m.BuiltInTypeK

c# - 为什么 EF 6 教程使用异步调用?

有关如何将EF6与MVC5结合使用的最新EF教程似乎倾向于使用对数据库的异步调用,例如:Departmentdepartment=awaitdb.Departments.FindAsync(id);这是新标准/最佳实践吗?我不确定这种使用ASP.NETMVC的开发方式有什么好处。谁能评论一下这个模式,这是微软正在推广的新标准吗? 最佳答案 为了决定是异步还是同步,比较yield和成本:异步:几乎从不用异步耗尽线程池(情况必须是极端的)几乎任意级别的并发(并发请求和操作)每个线程节省1MB内存借助SynchronizationCont

c# - .NET Framework 3.5 和 TLS 1.2

我目前有一个使用.NET3.5框架的Web应用程序,我想知道它是否与TLS1.2兼容。在我们的代码中,我们没有指定TLS版本。这是一个遗留应用程序,现在不考虑重新编译。我没有找到太多关于你是否可以的信息,但我的印象是兼容性更依赖于操作系统版本。看起来最低是2008R2。目标是让Paypal在7月1日之前正常通信。 最佳答案 如前所述,.net3.5.1现在支持TLS1.2;但您不需要@Paulina的回答中提到的注册表更改。我正在使用VS2008和.net3.5.30729.4926。我所要做的就是:添加导入:ImportsSyst

c# - Entity Framework - 打印 EntityValidationErrors 以记录

打印日志时出现以下错误Message:Validationfailedforoneormoreentities.See'EntityValidationErrors'propertyformoredetails.;StackTrace:atSystem.Data.Entity.Internal.InternalContext.SaveChanges()EntityValidationErrors对象包含不同节点中的完整详细错误。打印它的最佳方法是什么? 最佳答案 更简洁的语法:catch(System.Data.Entity.Val

c# - 非程序员需要多长时间才能学习 C#、.NET Framework 和 SQL?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。Improvethisquestion我不太擅长编程。我完成了电子学硕士学位。我想学习C#、.NETFramework和SQL。你认为这需要多少时间(如果我每天有5个小时投入其中)?另外,我学习它们的顺序是什么?我有VisualWebDeveloper2008,是否足以开始?从同一用户的新问题中复制:我应该明确表示我希望以.NET开发为职业。我想给自己2个月的时间来了解“基础知识”。作为开发人员,IT公司对您的期望是什么?他们

c# - 如何重写查询表达式以用整数替换枚举?

受到能够在EF查询中使用枚举的愿望的启发,我正在考虑向我的存储库添加一个ExpressionVisitor,它将采用传入的标准/规范标准并重写它们以使用相应的持久int属性。我一直在我的(代码优先)实体中使用以下值后缀模式:publicclassUser:IEntity{publiclongID{get;set;}internalintMemberStatusValue{get;set;}publicMemberStatusMemberStatus{get{return(MemberStatus)MemberStatusValue;}set{MemberStatusValue=(int

c# - 使用 BindingSource 绑定(bind)到嵌套属性 - 或者,使实体可绑定(bind)

绑定(bind)到嵌套属性非常简单:checkBox1.DataBindings.Add(newBinding("Checked",bindingSource,"myProperty"));//NormalbindingcheckBox2.DataBindings.Add(newBinding("Checked",bindingSource,"myProperty.innerProperty"));//Nestedproperty但是,当myProperty.innerProperty发生更改时,不会引发任何事件-BindingSource永远不会收到更改通知。我已经read解决方案是

c# - Entity Framework 6 错误无法加载指定的元数据资源

我在我的解决方案中使用EntityFramework6和“模型优先”,我将“数据模型”类分离到另一个项目中,这样我就可以添加对“数据模型”类的引用而不公开我的“数据模型”上下文”和连接。我不想将我的实体数据模型项目(尤其是数据库上下文等)公开到我的UI层。我有这个:我现在已经成功地将我的自动生成的实体类与我的数据模型分离,我通过添加一个实体或一个属性到一个实体来尝试它在项目Mapeo.BusinessEntity中更新。这是我来自DatabaseLayer(Mapeo.DatabaseModel)的连接字符串在我的服务层,我将此连接字符串复制到App.config,我的问题是当我想添加

c# - LINQ 到 SQL : Delete entity (by ID) with one query

我使用LINQToSQL已经有一段时间了,当谈到从数据库中删除实体时,我总是调用表的.DeleteOnSubmit并传入实体。有时我发现自己在写类似这样的东西:db.Users.DeleteOnSubmit(db.Users.Where(c=>c.ID==xyz).Select(c=>c).Single());这当然会导致两个查询。一个获取符合条件的实体,然后另一个删除它。通常我有需要删除的记录的ID,我想知道是否有更直接的方法仅通过ID从表中删除行? 最佳答案 通过附加部分对象并将其删除,无需手动工具SQL即可执行此操作:varm