草庐IT

4Framework

全部标签

c# - 如何阻止 Entity Framework 尝试保存/插入子对象?

当我用EntityFramework保存一个实体时,我很自然地假设它只会尝试保存指定的实体。但是,它也在尝试保存该实体的子实体。这导致了各种完整性问题。我如何强制EF仅保存我想要保存的实体并因此忽略所有子对象?如果我手动将属性设置为空,我会收到错误消息“操作失败:无法更改关系,因为一个或多个外键属性不可为空。”这会适得其反,因为我专门将子对象设置为null,因此EF不会理会它。为什么我不想保存/插入子对象?由于这个问题在评论中来回讨论,我将给出一些理由来说明为什么我希望我的子对象不受干扰。在我正在构建的应用程序中,EF对象模型不是从数据库中加载的,而是用作我在解析平面文件时填充的数据对

c# - Entity Framework - 代码优先 - 无法存储列表 <String>

我写了这样的类:classTest{[Key][DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]publicintId{get;set;}[Required]publicListStrings{get;set;}publicTest(){Strings=newList{"test","test2","test3","test4"};}}和internalclassDataContext:DbContext{publicDbSetTests{get;set;}}运行代码后:vardb=newDataContext(

c# - 如何使用 Entity Framework Code First Fluent API 指定表名

我有一个实体,我要配置EntityFramework以将其映射到具有不同名称的数据库表。我可以使用CodeFirstDataAnnotations轻松做到这一点(DataAnnotations.Schema.TableAttribute)。但由于限制现在我必须使用CodeFirstFluentAPI(我的域对象将由外部客户端使用,因此它们不应该是特定于技术的——例如对DataAnnotations有任何引用)我在MSDN上搜索过,但一无所获。那么这可能吗?如何实现?谢谢。 最佳答案 您还可以使用表格注释:[Table("Intern

c# - Entity Framework 可查询异步

我正在使用EntityFramework6处理一些WebAPI内容,我的Controller方法之一是“获取全部”,它希望从我的数据库中接收表的内容作为IQueryable.在我的存储库中,我想知道是否有任何有利的理由以异步方式执行此操作,因为我不熟悉将EF与异步一起使用。基本上可以归结为publicasyncTask>GetAllUrlsAsync(){varurls=awaitcontext.Urls.ToListAsync();returnurls.AsQueryable();}对比publicIQueryableGetAllUrls(){returncontext.Urls.A

c# - 使用 Entity Framework 模型插入数据

我正在尝试使用EntityFramework模型在我的数据库中插入一些数据,但由于某些我不知道的原因,它什么也没做。我是不是漏掉了什么?using(varcontext=newDatabaseEntities()){vart=newtest{ID=Guid.NewGuid(),name="blah",};context.AddTotest(t);context.SaveChanges();} 最佳答案 应该是:context.TableName.AddObject(TableEntityInstance);地点:TableName:

c# - Entity Framework 刷新上下文?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭1年前。Improvethisquestion如何刷新我的上下文?我有基于我的数据库View的实体,当我对一个具有View导航属性的表实体进行更新时,该实体已更新但View不刷新符合新更新...只是想再次从Db数据。谢谢!

c# - 将 Include in Entity Framework 4 与 lambda 表达式结合使用

我看过很多关于如何克服这个问题的文章,都与CTP4有关,或者添加我自己的扩展方法。是否有“官方”EF4包含方式在include中使用lambda表达式(对于第一级关系以及第二级和更高级别)或者它最终没有包含在RTM中?它有一个-我很高兴学习如何去做,因为现在在我的代码中使用lambda表达式(使用#system.data.entity#system.data.linq)仍然给我:无法将lambda表达式转换为类型“string”,因为它不是委托(delegate)类型上:varcustomers=fromcincontext.Customers.Include(c=>c.Phone)

c# - Entity Framework 迁移中必填字段的默认值?

我已将[Required]数据注释添加到我的一个模型中ASP.NETMVCapplication.创建迁移后,运行Update-Database命令会导致以下错误:CannotinsertthevalueNULLintocolumn'Director',table'MOVIES_cf7bad808fa94f89afa2e5dae1161e78.dbo.Movies';columndoesnotallownulls.UPDATEfails.Thestatementhasbeenterminated.这是由于某些记录的Director列中有NULL。我如何自动将这些值更改为某些默认值(例如

c# - 给 Entity Framework 生成的类添加数据注解

我有以下由EntityFramework生成的类:publicpartialclassItemRequest{publicintRequestId{get;set;}//...我想把它设为必填字段[Required]publicintRequestId{get;set;}但是,因为这是生成的代码,所以会被清除。我无法想象创建分部类的方法,因为属性是由生成的分部类定义的。如何以安全的方式定义约束? 最佳答案 生成的类ItemRequest将始终是一个partial类。这允许您编写第二个部分类,该类标有必要的数据注释。在您的情况下,部分

c# - Entity Framework Core 代码优先添加唯一约束

我找不到使用属性向我的字段添加唯一约束的方法:publicclassUser{[Required]publicintId{get;set;}[Required]//[Index("IX_FirstAndSecond",2,IsUnique=true)]notsupportedbycorepublicstringEmail{get;set;}[Required]publicstringPassword{get;set;}}我正在使用这些包:"Microsoft.EntityFrameworkCore":"1.0.1","Microsoft.EntityFrameworkCore.SqlS