草庐IT

实体化

全部标签

c# - EF4 在不先获取实体的情况下更新实体

如何更新一个实体而不必调用它来选择它。如果我为实体提供key,它是否应该不知道在对ObjectContext调用SaveChanges()后进行更新。我目前这样做:varuser=context.Users.Single(u=>u.Id==2);user.Username="user.name";user.Name="ABC123";context.SaveChanges();这行得通,但会强制选择。因为我知道Id,为什么我不能做这样的事情:varuser=newUser();user.Id=2;user.Username="user.name";user.Name="ABC123";

c# - 在主表中创建具有重命名字段和非主键的实体关系

以下是我试图在其中定义外键关系的两个部分表。publicclassForm{[Key,Column("FormID")]publicSystem.GuidFormGUID{get;set;}[Column("PatGUID")]publicNullablePatientGUID{get;set;}}publicclassPatient{[Column("PatGUID")]publicSystem.GuidPatientGUID{get;set;}[Key,Column("PatID")]publicintPatientID{get;set;}对于这个例子,除了相关信息、字段、导航等,

c# - 如何深拷贝一个实体

我找到了这段代码here:publicstaticTDeepClone(thisTobj){using(varms=newMemoryStream()){varbf=newBinaryFormatter();bf.Serialize(ms,obj);ms.Position=0;return(T)bf.Deserialize(ms);}}也就是说我们可以通过这个东西对所有相关对象进行深拷贝。我正在尝试做这样的副本:db.Detach(myEntity);myEntity.EntityKEy=null;EntitynewEntity=newEntity();newEntity=DeepCl

c# - 基于子实体的属性构建 OrderBy Lambda 表达式

我正在尝试使用lambda表达式生成一个LINQOrderBy子句,并将实体的列名称作为字符串输入(在下面的“sortOn”变量中)。下面的代码适用于生成lambda的sortOn值,如“代码”p=>p.Code但我还想对lambda可能所在的子实体进行排序p=>p.Category.Description所以在这种情况下,我只想设置sortOn="Category.Description"并生成正确的lamdba表达式。这可能吗?我们欢迎任何有关执行此操作的最佳方法的建议。此代码适用于简单的情况:varparam=Expression.Parameter(typeof(Product

c# - 如何更新在 DbContext 之外修改的实体?

如果实体在DbContext之外更改(是一个分离的实体),我在更新实体时会遇到一个小问题。如果我附加修改后的实体,它的状态不会被修改。我的代码是这样的:varspecificationToSave=GetSpecificationFromTmpStore(userSessionGuid);using(varcontext=DataContextFactory.GetDataContext()){//thisworksforupdate,ifIchangethevaluesinsidethecontextwhiledebugging//butitbreakswithnewentities

c# - Dapper 中的映射实体

我刚开始使用Dapper,我似乎没有找到像将实体映射到数据库中的表这样非常简单的事情:我有一个存储过程:CREATEPROCEDURE[dbo].GetUserById(@UserIdint)ASbeginSELECTUserId,LastName,FirstName,EmailAddressFROMusersWHEREUserID=@UserIdendgo然后是一个实体:publicclassUser{publicintId{get;set;}publicstringLastName{get;set;}publicstringFirstName{get;set;}publicstri

c# - linq to 实体,where in where 子句? (里面的地方)

我有一个表,该表具有到一个表的一对多映射,该表具有到另一个表的多对多映射。我想执行以下操作:varresults=context.main_link_table.Where(l=>l.some_table.RandomProperty=="myValue"&&l.some_table.many_to_many_table.Where(m=>m.RandomProperty=="myValue"));我怎样才能做到这一点?第一部分会起作用,但在没有“内部WHERE”的情况下尝试时,我无法访问many_to_many_table的属性,但“内部位置”显然无法编译。我基本上想实现类似以下SQ

c# - LINQ to Entities 仅支持转换实体数据模型基元类型?

我正在尝试在我的View中填充下拉菜单。任何帮助是极大的赞赏。谢谢。错误:Unabletocastthetype'System.Int32'totype'System.Object'.LINQtoEntitiesonlysupportscastingEntityDataModelprimitivetypes.Controller:ViewBag.category=(fromcinnewIntraEntities().CategoryItemsselectnewSelectListItem(){Text=c.Name,Value=""+c.ID}).ToList();查看:Categor

c# - 如何从 ChangeTracker 获取原始实体

有没有办法从ChangeTracker中获取原始实体本身(而不仅仅是原始值)?如果State是Modified,那么我想我可以这样做://GettheDbEntityEntryfromtheDbContext.ChangeTracker...//StorethecurrentvaluesvarcurrentValues=entry.CurrentValues.Clone();//Settotheoriginalvaluesentry.CurrentValues.SetValues(entry.OriginalValues.Clone());//Nowwehavetheoriginale

c# - 实体到 json 错误 - 序列化类型对象时检测到循环引用

尝试将实体对象转换为JSON字符串时出现以下错误。我将C#MVC4与代码优先数据库设计一起使用。它接缝是因为FK和表之间的关系造成了这个问题。解决方法是什么?在序列化System.Data.Entity.DynamicProxies.User类型的对象时检测到循环引用我的代码是Userma=db.user.First(x=>x.u_id==id);returnJson(ma,JsonRequestBehavior.AllowGet); 最佳答案 这是因为它正在尝试加载子对象,并且可能会创建一些永无止境的循环(a=>b,b=>c,c=