草庐IT

4Framework

全部标签

c# - Entity Framework 中的 ICollection<T> 与 List<T>

在我开始设计一些EntityFramework应用程序之前,我只看了几个网络广播。我真的没有读那么多文档,我觉得我现在正在为此受苦。我一直在使用List在我的类里面,效果很好。现在我已经阅读了一些文档,它指出我应该一直使用ICollection.我改成了这个,它甚至没有引起模型上下文的变化。这是因为List和ICollection继承IEnumerable,而这正是EF实际需要的?但是,如果是这种情况,为什么EF文档没有说明它需要IEnumerable而不是ICollection?无论如何,我所做的是否有任何缺点,或者我应该改变它? 最佳答案

c# - 插入/更新多对多 Entity Framework 。我该怎么做?

我正在使用EF4并且是新手。我的项目中有很多,但似乎无法弄清楚如何插入或更新。我已经构建了一个小项目,只是为了看看它应该如何编码。假设我有3张table类:ClassID-类名学生:学号-名字-姓氏StudentClass:StudentID-ClassID添加所有关系并通过模型浏览器更新模型后,我注意到StudentClass没有出现,这似乎是默认行为。现在我需要同时进行插入和更新。你怎么做呢?我可以下载示例的任何代码示例或链接,或者您能抽出5分钟吗? 最佳答案 就实体(或对象)而言,你有一个Class对象,它有一个Student

c# - 解码/编码修改后的 base64 URL 的代码(在 ASP.NET Framework 中)

我想对数据进行base64编码以将其放入URL,然后在我的HttpHandler中对其进行解码。我发现Base64Encoding允许使用“/”字符,这会扰乱我的UriTemplate匹配。然后我发现维基百科有一个“modifiedBase64forURL”的概念:存在修改后的Base64forURL变体,其中不使用填充'=',标准Base64的'+'和'/'字符分别替换为'-'和'_',因此使用URL编码器/解码器不再是必需的,并且对编码值的长度没有影响,保持相同的编码形式完好无损地用于关系数据库、Web表单和一般对象标识符。使用.NET我想修改我当前的代码,从执行基本的base64

c# - Entity Framework 4 - AddObject 与 Attach

我最近一直在使用EntityFramework4,对于何时使用ObjectSet.Attach有点困惑,和ObjectSet.AddObject.据我了解:当系统中已存在实体时使用“附加”创建全新实体时使用“AddObject”所以,如果我要创建一个新人,我会这样做。varctx=newMyEntities();varnewPerson=newPerson{Name="JoeBloggs"};ctx.Persons.AddObject(newPerson);ctx.SaveChanges();如果我要修改现有的Person,我会这样做:varctx=newMyEntities();va

c# - .NET Framework 中的并发 HashSet<T>?

我有以下类(class)。classTest{publicHashSetData=newHashSet();}我需要从不同的线程更改“数据”字段,所以我想对我当前的线程安全实现提出一些意见。classTest{publicHashSetData=newHashSet();publicvoidAdd(stringVal){lock(Data)Data.Add(Val);}publicvoidRemove(stringVal){lock(Data)Data.Remove(Val);}}是否有更好的解决方案,直接进入字段并保护它免受多线程并发访问? 最佳答案

c# - Entity Framework .Remove() 与 .DeleteObject()

您可以通过以下两种方法使用EF从数据库中删除项目。EntityCollection.RemoveMethodObjectContext.DeleteObjectMethod第一个在EntityCollection上,第二个在ObjectContext上。什么时候应该使用它们?一个比另一个更受欢迎吗?Remove()返回一个bool,DeleteObject()返回一个void。 最佳答案 您可以使用这两种方法“从数据库中删除项目”通常是不正确的。准确的说是这样的:ObjectContext.DeleteObject(entity)在

c# - IEntityChangeTracker 的多个实例不能引用实体对象。在 Entity Framework 4.1 中将相关对象添加到实体时

我正在尝试保存员工详细信息,其中引用了城市。但每次我尝试保存我的联系人时,我都会收到异常“ADO.NetEntityFramework一个实体对象不能被多个IEntityChangeTracker实例引用”我看了很多帖子,但仍然不知道该怎么做...下面给出了我的保存按钮点击代码protectedvoidButton1_Click(objectsender,EventArgse){EmployeeServicees=newEmployeeService();CityServicecs=newCityService();DateTimedt=newDateTime(2008,12,12);

c# - 如果行存在则更新行否则使用 Entity Framework 插入逻辑

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭去年。社区在7个月前审查了是否重新打开此问题,然后将其关闭:原始关闭原因未解决Improvethisquestion使用EntityFramework实现更新行(如果存在),否则插入新行逻辑的最有效方法是什么?或者有什么模式吗?

c# - 人们如何使用 Entity Framework 6 进行单元测试,你应该打扰吗?

我刚刚开始使用单元测试和TDD。我以前涉足过,但现在我决定将它添加到我的工作流程中并编写更好的软件。昨天我问了一个问题,其中包括这个,但这似乎是一个单独的问题。我已经坐下来开始实现一个服务类,我将使用它从Controller中抽象出业务逻辑,并使用EF6映射到特定模型和数据交互。问题是我已经把自己挡住了,因为我不想在存储库中抽象EF(它仍然可以在服务之外用于特定查询等)并且想测试我的服务(将使用EF上下文).我想这里有一个问题,这样做有什么意义吗?如果是这样,鉴于IQueryable引起的抽象泄漏和LadislavMrnka的许多精彩帖子,人们是如何在野外做这件事的。关于单元测试的主题

c# - 从 Entity Framework 中删除单个记录?

我在EntityFramework中有一个名为employ的SQLServer表,其中有一个名为ID的键列。如何使用EntityFramework从表中删除单条记录? 最佳答案 不必先查询对象,您可以通过其id将其附加到上下文。像这样:varemployer=newEmploy{Id=1};ctx.Employ.Attach(employer);ctx.Employ.Remove(employer);ctx.SaveChanges();或者,您可以将附加条目的状态设置为已删除:varemployer=newEmploy{Id=1};