Tag: entity framework

entity framework无法加载指定的元数据资源

可能重复: MetadataException:无法加载指定的元数据资源 我希望有人能帮助这个。 我试着在这里和其他网站上几十个其他职位,但我可以得到这个工作。 entity framework全部工作,然后第二天刚刚开始给我错误:无法加载指定的元数据资源。 在实体类的构造函数上。 我检查了连接string,删除和重新添加一切,但我仍然无法得到这个工作。 我的模型命名空间是WraithNath.co.uk.Models 元数据artificat被embedded到程序集中 我的连接string如下所示: <add name="ConnectionString" connectionString="Data Source=.\SQL2008;AttachDbFilename=|DataDirectory|\WraithNath.co.uk.mdf;Integrated Security=True;" providerName="System.Data.SqlClient" /> <add name="Entities" connectionString="metadata=res://*/Models.WraithNath.co.uk.csdl|res://*/Models.WraithNath.co.uk.ssdl|res://*/Models.WraithNath.co.uk.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQL2008;AttachDbFilename=|DataDirectory|\WraithNath.co.uk.mdf;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> 在Reflector中查看时,我找不到在assembly中需要的3个文件。 有没有一步一步的指导来解决这个问题? 我已经尝试了谷歌的前3页的search结果的entity framework无法加载指定的元数据资源的每个链接。

如何使用entity framework代码第一个CTP 5存储图像?

我只是想弄清楚是否有一个简单的方法来存储和检索二进制(文件)数据使用EF Code First CTP 5? 我真的很喜欢它使用FILESTREAMtypes,但我真的只是寻找一些方法使其工作。

服务应该总是返回DTO,还是可以返回域模型?

我正在(重新)devise大型应用程序,我们使用基于DDD的多层体系结构。 我们有数据层(存储库的实现),领域层(领域模型和接口 – 存储库,服务,工作单元的定义),服务层(服务的实现)的MVC。 到目前为止,我们使用跨所有图层的领域模型(主要是实体),我们只使用DTO作为视图模型(在控制器中,服务返回域模型和控制器创build视图模型,并将其传递给视图)。 我读过无数关于使用,不使用映射和通过DTO的文章。 我知道没有任何明确的答案,但我不确定是否可以或不从服务返回到控制器的域模型。 如果我返回域模型,它仍然不会传递给视图,因为控制器总是创build视图特定的视图模型 – 在这种情况下,它看起来是合法的。 另一方面,域模型离开业务层(服务层)时,感觉不对。 有时候服务需要返回没有在域中定义的数据对象,然后我们必须添加新的对象到未映射的域,或者创buildPOCO对象(这很丑陋,因为有些服务返回域模型,有些有效地返回DTO)。 问题是,如果我们严格使用视图模型,将域模型一直返回给控制器是否可行,还是应该总是使用DTO与服务层进行通信? 如果是这样,可以根据需要调整域模型吗? (坦率地说,我不这么认为,因为服务应该消费域名。)如果我们应该严格遵守DTO,是否应该在服务层定义? (我是这样认为的)有时很明显我们应该使用DTO(例如,当服务执行大量的业务逻辑并创build新的对象时),有时很明显我们应该只使用域模型(例如,当会员服务返回贫血的用户s) – 创build与领域模型相同的DTO似乎没有什么意义) – 但我更喜欢一致性和良好的实践。 文章域与DTO vs ViewModel – 如何以及何时使用它们? (还有其他一些文章)与我的问题非常相似,但是它不能回答这个问题。 文章我应该用EF来实现仓库模式的DTO吗? 也是类似的,但是它不处理DDD。 免责声明:我不打算使用任何devise模式,只是因为它存在而且很花哨,另一方面,我想使用好的devise模式和实践,因为它有助于devise整个应用程序,帮助分离至less目前来说,即使使用特定的模式也不是“必要的”。 一如既往,谢谢。

使用entity framework进行unit testing

我想testing使用Entity Framework构build的实体。 我担心的是使用entity framework意味着直接使用数据源。 那么任何想法如何unit testing基于entity framework的组件?

entity frameworkselect不同的名称

我如何使用entity framework来做这个SQL查询? SELECT DISTINCT NAME FROM TestAddresses

为什么我得到这个错误:没有为以下EntitySet / AssociationSet – Entity1指定的映射?

我正在使用entity framework4与模型优先的方法。 我开始了这个项目,devise了实体并生成了数据库。 一切正常。 然后我需要回去添加另一个实体到我的模型。 但是,当我拖动一个实体到EDMX,我得到这个错误: 好的! 我只需要将Entity1映射到一张桌子上。但是,嘿! 我使用模型优先的方法,我期望它生成DDL时为我创build表。 我该如何解决这个错误?

使用entity framework时,什么是良好的devise实践?

这将主要适用于不通过soa访问数据的asp.net应用程序。 这意味着你可以访问从框架加载的对象,而不是传输对象,尽pipe一些build议仍然适用。 这是一个社区post,所以请根据您的情况补充。 适用于 :Visual Studio 2008 sp1附带的entity framework1.0。 为什么selectEF呢? 考虑到这是一个年轻的技术,有很多问题(见下文),可能是一个很难卖你的项目EF EF的行列。 但是,这是微软推动的技术(以Linq2Sql为代表的EF子集)。 另外,你可能不满意NHibernate或其他解决scheme。 不pipe是什么原因,有人在那里(包括我)和EF一起工作,生活也不坏。让你想想。 EF和inheritance 第一大主题是inheritance。 EF确实支持以两种方式持久化的inheritance类的映射:每个类的表和表的层次结构。 build模很容易,而且这个部分没有编程问题。 (以下内容适用于每个类模型的表,因为我没有每个层次表的经验,无论如何,这是有限的)。当您试图运行包含一个或多个对象的查询一个inheritance树:生成的sql非常糟糕,需要很长时间才能被EFparsing并且需要很长时间才能执行。 这是一个真正的表演塞。 足够的EF可能不应该用inheritance或尽可能less。 这是一个很糟糕的例子。 我的EF模型有30个类,其中约10个是inheritance树的一部分。 在运行查询以从Base类获取一个项目(如Base.Get(id))时,生成的SQL超过了50,000个字符。 然后当你试图返回一些关联时,它会退化得更多,甚至会抛出SQLexception一次不能查询超过256个表。 好吧,这是不好的,EF的概念是允许你创build你的对象结构没有(或尽可能less)考虑你的表的实际数据库实现。 这完全失败了。 那么,build议? 如果可以,避免inheritance,性能会好很多。 在必要的地方谨慎使用它。 在我看来,这使得EF成为查询的一个光荣的sql生成工具,但是使用它仍然有优势。 以及如何实现类似于inheritance的机制。 用Interfaces绕过inheritance 试图获得与EF一起进行某种types的inheritance时,首先要了解的是,不能将一个非EF模型化的类分配给一个基类。 不要尝试它,它会被build模者覆盖。 那么该怎么办? 您可以使用接口来强制这些类实现一些function。 例如,这里是一个IEntity接口,它允许您定义在devise时不知道实体types的EF实体之间的关联。 public enum EntityTypes{ Unknown = -1, Dog = 0, Cat } public interface IEntity { int […]

如何在一个generics扩展方法中使用string列名在IQueryable上应用OrderBy?

public static IQueryable<TResult> ApplySortFilter<T, TResult>(this IQueryable<T> query, string columnName) where T : EntityObject { var param = Expression.Parameter(typeof(T), "o"); var body = Expression.PropertyOrField(param,columnName); var sortExpression = Expression.Lambda(body, param); return query.OrderBy(sortExpression); } 因为OrderBy的types不是从sortExpression推断的,我需要在运行时指定它: var sortExpression = Expression.Lambda<T, TSortColumn>(body, param); 要么 return query.OrderBy<T, TSortColumn>(sortExpression); 我不认为这是可能的,但是TSortColumn只能在运行时确定。 有没有解决的办法?

ADO.NETentity framework:更新向导将不会添加表

我将一个新的ADO.Net实体数据模型添加到我的项目中,并使用更新向导将表添加到模型中。 五个选定的表格被添加到devise表面。 两个其他表不会添加。 我在向导中select它们,然后单击“完成”,但它们从不在devise图面上显示出来。 这是一个错误,还是有一些情况下表不能添加到模型(按devise)? 更新:XML(* .edmx)显示问题。 <!–Errors Found During Generation: warning 6013: The table/view 'FooBar.dbo.Roles' does not have a primary key defined and no valid primary key could be inferred. This table/view has been excluded. To use the entity you will need to review your schema, add the correct keys and uncomment it.–> <!–<EntityType […]

更新logging而不先查询?

比方说,我查询数据库并加载项目列表。 然后我以详细视图的forms打开其中一个项目,而不是从数据库中重新查询项目,而是从列表中的数据源创build项目的一个实例。 有没有办法可以更新数据库logging而不需要获取单个项目的logging? 以下是我现在正在做的一个示例: dataItem itemToUpdate = (from t in dataEntity.items where t.id == id select t).FirstOrDefault(); 然后拉logging后,我更新项目中的一些值,并推回logging: itemToUpdate.itemstatus = newStatus; dataEntity.SaveChanges(); 我想会有更好的方法来做到这一点,有什么想法?