Tag: entity framework 4

Simple Injector:在同一个图的服务中注入相同的UnitOfWork实例

我有多个服务,每个服务都使用Simple Injector IoC容器将UnitOfWork注入到构造函数中。 目前我可以看到每个UnitOfWork实例都是一个单独的对象,这很糟糕,因为我使用的是Entity Framework,并且需要在所有工作单元中使用相同的上下文引用。 如何确保每个解析请求将相同的UnitOfWork实例注入到所有服务中? 命令完成后,我的UnitOfWor将由外部命令处理程序装饰器保存。 请注意,这是一个通用库,将用于MVC和Windows Forms,如果可能的话,为两个平台提供通用解决方案会很不错。 代码如下: // snippet of code that registers types void RegisterTypes() { // register general unit of work class for use by majority of service layers container.Register(); // provide a factory for singleton classes to create their own units of work // at will container.RegisterSingle(); // register […]

.net MVC使用数据库进行简单成员身份validation

使用Code First Entity Framework和.NET MVC 4我创建了一个新的Web应用程序,并用对象填充数据库,如下所示。 public class GratifyGamingContext : DbContext { public DbSet Games { get; set; } public DbSet Genres { get; set; } public DbSet UserRepository { get; set; } } 我想使用我的UserRepository表而不是AccountModel.cs中的内置UserContext类来进行我的用户帐户访问,因为我无法使用现有的dbContext进行工作。 public class UsersContext : DbContext { public UsersContext() : base(“DefaultConnection”) { } public DbSet UserProfiles { get; set; } } […]

entity framework4.0奇怪,保存数据

我遇到了下一个问题。 我有一个带模型的数据仓库 public class GameResult { public int GameResultId { get; set; } public virtual Competition Competition { get; set; } public virtual CustomDate DateGame { get; set; } public virtual Contender ContenderFirst { get; set; } public virtual Contender ContenderSecond { get; set; } public virtual Location Location { get; set; } } public […]

实体包装 – 自定义

我想找到一种解决方法来完成一个简单的解决方案,以便通过EF自动化某些操作。 我需要它在保存和检索过程中修改查询结果时的接管,但是这个类将能够使其适用于任何类型的实体。 示例:我有一个MyTestDb。 所以在我的C#项目中,我创建了一个新的实体模型(MyTEstDbModel.edmx),并生成了相对的POCO类。 好吧,一个兴趣点可能是实现一个新的自定义类,如下所示: class Example { private ObjectContext _context; private Example(ObjectContext obj) { _context = obj; } public void Store(ObjectSet os) { // problem here: I dont’t know the type contained in ObjectSet // but if I Knew its type, I could make a work like this: // -> foreach every instance in […]

如何在Entity Framework 4中的LINQ表达式中执行Oracle函数?

我使用的是Visual Studio 2010,C#,Entity Framework 4和Oracle 10g。 我需要能够将数据库函数的结果作为匿名类型的标量属性返回。 我的Oracle模式有两个表,PARENT和CHILD,以及一个函数FNC_ADD。 我使用Visual Studio ADO.NET实体数据模型模板创建了一个实体模型,包括表和函数。 我的.edmx文件的StorageModels部分如下所示: 我创建了一个扩展方法来定义实体数据模型的函数,如下所示: public partial class LINQtest2Entities { [EdmFunction(“LINQtest2Model”, “FNC_ADD”)] public decimal FNC_ADD(decimal V1, decimal V2) { // don’t need to implement the function throw new ApplicationException(); } } 我在LINQ表达式中调用函数,如下所示: using (var context = new LINQtest2Entities()) { var parents = from p in context.PARENTs select […]

如何在Entity Framework 4.0模型中添加第一个设计器的文件流列?

我正在使用EF 4.0设计器通过单击“从模型生成数据库”来创建数据库。 我不想使用sql 2008列类型“filestream”。 不幸的是,我不能从特定列的Type DropDownList中选择“filestream”。 那么,我如何首先使用EF 4.0模型的文件流? 到目前为止,我已经搜索了一些SQL脚本来手动添加这些列,但是通过SQL脚本添加它们意味着我的模型中没有它们。 我该怎么办?

c#entity frameworkEF 4.1在运行时更改架构和数据库名称

我搜索了一些主题,但没有找到解决我问题的具体方法。 我的应用程序是ac#commercial app。 我先使用EF 4.1数据库。 我从开发数据库连接生成模型,并创建一个Model.edmx文件和所有EF的东西很好。 我的目标是为客户提供一个应用程序,让他自己创建数据库和数据库用户。 这样做,在运行时我会得到用户名,密码,数据库连接和模式名称参数来连接到客户数据库。 这样,部署应用程序我需要的只是让客户创建一个数据库并将数据库参数添加到app配置文件中。 因此,我的目标是在运行时更改连接字符串和模式参数,而不更改所有自动生成的edmx文件,而不是触及VS生成的代码。 我环顾四周,发现: 对于EF早期版本: 在运行时更改模式名称 – entity framework http://efmodeladapter.codeplex.com 所有其他post都围绕着那个。 我甚至尝试使用第一个邮政编码但没有成功。 但我已经看到EF 4.1带有更好的支持工具来做到这一点,但我找不到它的参考或例子。 重要的是不要从VS更改自动生成的代码。 我是EF的新手,所以我想请求帮助来完成以下任务:a)在运行时更改连接字符串,添加我的用户名,密码和数据库服务器/端口参数b)更改数据库模式 我使用Oracle作为数据库服务器(因为Oracle将架构和用户混合在一起,这会使事情变得更糟)。

entity framework代码优先:使用属性自定义映射?

在ScottGu 的文章中 ,他使用OnModelCreating方法来定义模式映射。 我想知道entity framework是否有一些现有的function允许我们通过属性进行映射。 例如,该文章中提到的Dinner类可以是: [MapTable=”tblDinner”] public class Dinner{ [MapColumn=”colId”] public int DinnerID {get;set;} }

修改entity framework中实体的属性会导致validation错误

我试图简单地加载一个实体,修改一个属性,然后将其保存回数据库。 var db = new NewsletterContext(); var newsletter = db.Newsletters.Find(x => x.ID==newsletterID); newsletter.SomeProperty = 5; db.SaveChanges(); 这会导致validation错误,因为当我执行Find()时,newsletter对象上有一些属性是必需的并且显然没有加载。 我可以使用Include()为每个必需属性后跟Where()来解决这个问题: var db = new NewsletterContext(); var newsletter = db.Newsletters.Include(x => x.RequiredProp1) .Include(x => x.RequiredProp2).Include(x => x.RequiredProp3) .Where(x => x.ID==newsletterID) .FirstOrDefault(); db.SaveChanges(); 这不是一个非常优雅的解决方案,如果我向Newsletter对象添加更多必需的属性,它将会中断。 有更好的解决方案吗?

使用Entity Framework和LINQ的未知列错误

我昨天开始使用EF,我很难将这个简单的查询转换为EF sintax 翻译: select a.city from offer o, address a, offer_address oa where o.identifier = oa.offeridentifier and a.identifier = oa.addressidentifier group by a.city order by count(*) desc 成: var cities = (from o in db.offer from a in db.address from oa in db.offer_address where (o.identifier == oa.offeridentifier && a.identifier == oa.addressidentifier) group a by a.city […]