jjzjj

phaser-framework

全部标签

c# - Entity Framework - 使用默认参数调用存储过程

我使用数据库优先在EntityFramework中映射了一些存储过程。它创建强类型方法,您可以调用这些方法来运行存储过程。然而,我遇到了一个严重的问题,因为我看不到任何方法来调用它使用存储过程中定义的默认参数创建的这些方法。这意味着:a)我必须手动将默认参数添加到方法调用中,如果默认参数值发生变化,这很脆弱。b)手工编写方法重载。这基本上消除了首先从数据库生成模型的好处。有谁知道这个问题是否有更好的解决方案?谢谢。 最佳答案 截至2013年1月,没有支持的方法让EntityFramework执行此操作。我已经打开了一个功能请求her

c# - Entity Framework 具有相同键的两个不同对象不起作用

我试图在我的主对象中插入对象引用,但如果我不使用它以前管理的对象,EntityFramework会提示。我只是想在创建对象时避免依赖dbContext。简化示例:classMovie{publicApplicationUserOwner{get;set;}}varmyMovie=db.Movies.FirstOrDefault(m,m=>m.Id=1);myMovie.Owner=newApplicationUser{Id=2};//Ihavetoattachorchangeitsstate,otherwise,EFwillcomplaintheobjectisnotcompleted

c# - Entity Framework 是否自动保存相关类?

假设我们有这样的类publicclassA{stringsomeField{get;set;}publicvirtualBB{get;set;}}publicclassB{intsomeIntField{get;set;}[ForeignKey("Id")][Required]publicvirtualAA{get;set;}}在代码中,我为它们创建了新的实例,并建立了如下关系:Aa=newA(){someField="abcd"};Bb=newB(){someIntField=42};A.B=b;B.A=a;我是否应该像这样使用DBContext来保存这两个类:using(vardb

c# - 如何在类库项目中配置 Entity Framework ?

我创建了一个类库项目,其中包含EntityFramework对象,该对象将负责我的多个项目的公共(public)数据访问层。将生成的dll文件添加到我的域项目并使用类库项目中的实体对象后,我面临以下问题。在应用程序配置文件中找不到名为“ABC”的连接字符串。我已经将edmx的MetadataArtifact处理属性设置为EmbedinOutputAssembly。App.Config标记实体代码如下publicABC_IntegrationEntities():base("name=ABC"){}还有一件事:我正在从数据目录“App_Data”访问数据库。我引用的博客来自dotnetc

c# - 如何在 Entity Framework 中用 Enum 替换 Int 属性?

我有一个实体类,它的属性具有Int数据类型的基础db列,但实际上我希望这个属性是一个枚举。有什么方法可以指定此属性返回一个枚举吗? 最佳答案 间接地,如so.就个人而言,我将存储int保留为公共(public)(例如作为DbFoo,其中枚举属性为Foo)——这样我仍然可以针对列编写lambda表达式在数据库执行,例如:whererow.DbFoo==SomeConstant如果不公开存储值,就不能干净利落地做到这一点。您同样可以将其保留在内部,并在上下文中使用一些方法来进行过滤……这是我今天早些时候写的一个:publicIOrder

c# - 如何在不加载相关记录的情况下判断是否设置了Entity Framework中的Navigation Property

我不确定EF4中的导航属性,所以我想请您解释一下。让我们想象一下这个场景:一个)我的数据库中有两个实体A和B具有N对N(多对多)关系和树表A和B以及一个链接表AB有两个外键。在这种情况下,EF创建一个导航属性,我们称它为X和XReference。B)我的数据库中有两个实体A和B,关系为1到N(一对多)和两个表A和B有一个外键。在这种情况下,EF创建一个导航属性,我们将其称为Y但不是YReference。现在让我们采用场景A和B并尝试找出B中是否有任何A的引用:我的场景代码:一个):boolisA=a.XReference.EntityKey!=null;我不加载B记录(对吗?)乙):b

c# - Entity Framework ——存储过程返回值

我正在尝试获取存储过程的返回值。以下是此类存储过程的示例:selectName,IsEnabledfromdbo.somethingwhereID=@IDif@@rowcount=0return1return这是一个简单的选择。如果找到0行,我的结果集将为空,但我仍然会有返回值。这是一个不好的例子,因为这是一个选择,所以如果返回0行,我肯定能找到。但是,在插入、删除或其他调用中,我们需要此返回值来了解是否存在问题。我一直无法找到获得此返回值的方法。可以得到输出值,可以得到结果集,但是没有返回值。如果我手动调用SQL,或者即使我使用EntityFramework运行SqlCommand,

c# - 在多对多 Entity Framework 关系中保留外键列表

我的代码优先EntityFramework模型中有一个多对多关系。想象一下,我们有两个表,“公司”和“文章”,它们之间有这样的关系。我的简化代码模型如下所示:publicclassArticle{publicintId{get;set;}publicstringText{get;set;}publicvirtualICollectionCompanies{get;set;}}publicclassCompany{publicintId{get;set;}publicstringName{get;set;}publicvirtualICollectionArticles{get;set;

c# - nhibernate 有什么,那个 Entity Framework 4 不见了?

我们正在尝试决定是否值得在项目中使用EntityFramework4。为此,我认为一个好的起点是将它与nhibernate进行比较,nhibernate已经成熟并经过多年使用证明具有企业应用程序所需的所有功能,并找出nHibernate具有哪些EF4缺少的功能所以开始吧,我有限的知识:缓存:nhib有二级缓存,而EF4缓存很差(?)nHibernate具有大多数数据库的提供程序,而EF需要非SQL数据库的插件nHib更快/更优化nHib有扩展点(例如自定义字段类型)...还有什么?找到一些文章:http://ayende.com/blog/archive/2010/01/05/nhib

c# - 在 Entity Framework 中合并

有没有办法调用T-Sql'sMERGE来自.NETEntityFramework4的命令? 最佳答案 不,没有这样的内置功能-您必须构建自己的功能。例如,非常常见的方法如下:publicvoidSaveOrUpdate(MyEntityentity){if(entity.Id==0){context.MyEntities.AddObject(entity);}else{context.MyEntities.Attach(entity);context.ObjectStateManager.ChangeObjectState(enti