Tag: 实体

使用defaultValue时,如何在Entity框架中获取插入实体的Id?

有没有办法使用defaultValue发送属性但是用数据库计算结果更新它? 数据库中有一个触发器,对于输入-1,触发一个计算新值的过程。 如何获得价值? var x = new Stuff(); db.Stuff.AddObject(x); db.SaveChanges(); return x.ID //gives -1, but the computed value should be different.

LINQ to Entities投影嵌套列表

假设这些对象…… class MyClass { int ID {get;set;} string Name {get;set;} List Things {get;set;} } class MyOtherClass { int ID {get;set;} string Value {get;set;} } 如何使用下面的投影执行LINQ to Entities Query,它会给我一个List? 这与IEnumerable工作正常(假设MyClass.Things是IEnumerable,但我需要使用List) MyClass myClass = (from MyClassTable mct in this.Context.MyClassTableSet select new MyClass { ID = mct.ID, Name = mct.Name, Things = (from MyOtherClass moc in mct.Stuff where […]

使用TableServiceEntity将复杂对象插入到azure表中

我正在考虑将一个完整的复杂对象添加到表中。 来自良好的老式SQL方法,我显然将其分为表格,但我正在尝试不同的方法。 所以基本上我有一个对象,它由一个嵌套类(当你反序列化一个json集合时得到的东西)组成,它有通常的Customer,Business和InvoiceItems列表。 public class Business { public string _id { get; set; } public string name { get; set; } public string street_1 { get; set; } public string street_2 { get; set; } public string town { get; set; } public string county { get; set; } public string postcode { get; set; […]

我应该在哪里对DDD进行独特的检查?

我正在研究我的第一个DDD项目,我想我了解实体,数据访问对象及其关系的基本角色。 我有一个基本的validation实现,它将每个validation规则与其关联的实体一起存储。 这适用于仅适用于当前实体的规则,但在需要其他数据时会崩溃。 例如,如果我有一个用户名必须唯一的限制,我希望IsValid()调用在存在具有当前名称的现有用户时返回false。 但是,我没有找到任何干净的方法来保持实体本身的validation规则。 我想在实体上有一个IsNameUnique函数,但是大多数执行此操作的解决方案都需要我注入一个用户数据访问对象。 这个逻辑应该在外部服务吗? 如果是这样,我如何仍然保持与实体本身的逻辑? 或者这是应该在用户实体之外的东西? 谢谢!

没有类型为’IEnumerable ‘的ViewData项具有键’GradingId’

我试图让一个下拉列表适用于正在评分的用户。 每个用户可以有多个评分。 因此,当我创建一个新的成绩时,我想要一个下拉列表来指定哪个用户将获得成绩。 我一直在: 没有类型为’IEnumerable’的ViewData项具有键’GradingId’。 我已经看了很多其他问题,但我无法解决我需要在控制器,视图或模型中更改的内容。 GradingController.cs public ActionResult Create() { return View(); } // POST: Gradings/Create [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create([Bind(Include = “GradingId,Eye,Cheek,Mouth,RestSymmetryTotal,RestSymmetryScore,VolForeheadWrinkle,VolGentleEyeClosure,VolOpenMouthSmile,VolSnarl,VolLipPucker,VolSymmetryTotal,VolSymmetryScore,SynForeheadWrinkle,SynGentleEyeClosure,SynOpenMouthSmile,SynSnarl,SynLipPucker,SynkinesisScore,CompositeScore”)] Grading grading) { if (ModelState.IsValid) { grading.GradeDate = DateTime.Now; db.Gradings.Add(grading); db.SaveChanges(); return RedirectToAction(“Index”); } ViewBag.GradingId = new SelectList(db.Gradings, “GradingId”, “CodeName”); return View(grading); } // GET: Gradings/Edit/5 public ActionResult Edit(int? id) { […]

entity framework自动加载

有没有办法让实体对象通过关系自动提取所有相关数据,而不是必须。包括我想要填充的所有内容? 我不能使用延迟加载,因为这需要序列化以通过WCF。 让它自动填充相关集合真是太棒了。

永久禁用EF中的Configuration.ProxyCreationEnabled?

而不是必须在每个查询上执行以下操作,有没有办法只是全局设置该值? 模型视图中有一个延迟加载设置,但似乎没有ProxyCreation的设置。 using (var context = new LabEntities()) { **context.Configuration.ProxyCreationEnabled = false;** var Query = from s in context.EAssets .Include(“Server”).Include(“Type”).Include(“Type.Definition”) where (s.Type.Definition.b_IsScannable == true) && (s.Server.s_Domain == Environment.UserDomainName || s.Server.s_Domain == null) select s; var Entities = Query.ToList(); } 我并不完全理解这个选项的好处,但是我知道在visual studio中标记了所有带有乱码序列后缀的对象,并且使得调试器使用不合理。

dbcontext不包含’Refresh’的定义

我首先使用实体​​框架代码,并得到以下编译错误。 dbcontext不包含“刷新”的定义。 我见过很多使用Refresh方法的例子。 但是当我将Refresh方法添加到我的dbcontext时,我得到了一个complilation错误。 我正在使用以下命名空间。 using System.Data; using System.Data.Entity; using System.Data.Linq; 我错过了吗? 我试图查找它,但没有找到命名空间。

更新实体列表的有效方法

我正在开发一个允许用户编辑实体列表的项目。 我将这些实体映射到视图模型并使用编辑器字段显示它们。 当用户按下提交按钮时,我会浏览每个模型并进行更新,如下所示: foreach (var viewModel in viewModels) { //Find the database model and set the value and update var entity = unit.EntityRepository.GetByID(fieldModel.ID); entity.Value = viewModel.Value; unit.EntityRepository.Update(entity); } 上面的代码可以工作,但是你可以看到我们需要为每个实体命中两次数据库(一次检索,另一次更新)。 使用Entity Framework有更有效的方法吗? 我注意到每个更新都会生成一个单独的SQL语句。 循环结束后是否有提交所有更新的方法?

在entity framework中,如何在没有枚举所有可能的DbSet的switch语句的情况下将通用实体添加到其对应的DbSet?

我有两种类型的实体:员工实体和办公室实体,两者之间有一对多关系,因此一个办公室有很多员工。 对于EF,在每个实体的上下文文件中创建一个DbSet: public DbSet Offices { get; set; } public DbSet Employees { get; set; } 我做过的EF教程让我为特定实体做了我的CRUD方法。 例如,下面的方法创建一个办公室并将其添加到办公室DbSet(忽略MVC的东西 – 我不再这样做了): public ActionResult Create([Bind(Include = “Address,BusinessName”)] Office office) { try { if (ModelState.IsValid) { db.Offices.Add(office); db.SaveChanges(); return RedirectToAction(“Index”); } } catch (DataException /* dex */) { //Log the error (uncomment dex variable name and add a […]