Tag: entity framework 4

如何将数组传递给执行存储命令?

如何将由逗号分隔的整数数组传递给实体中的ExecuteStoreCommand作为参数我无法执行此操作: this.ObjectContext.ExecuteStoreCommand(“INSERT INTO SurveyPatientListMrns (UserData, MrnId) SELECT DISTINCT ‘{0}’ , MrnId FROM PatientVisits WHERE (FacilityId = {1}) AND (UnitId IN ({2}))”, userData, facilityId, (string.Join(“,”, unitIds))); 这里(string.Join(“,”, unitIds))是一个字符串,由于逗号,我无法将其转换为整数。 我怎样才能传递参数呢? 仅供参考,unitIds是一个整数数组

如何使用多个表映射单个实体

我想从单个Entity类的两个表中获取数据。 怎么样?? public class HomeViewModel { [Key] [Column(“candidate_ID”)] public int candidateID { get; set; } [Column(“first_name”)] public string firstName { get; set; } [Column(“last_name”)] public string lastName { get; set; } public string emailID { get; set; } public string mb_country_code { get; set; } public int mobile_no { get; set; } } 上面的实体类包含6个属性,其中3个属性表示一个table1,3个表示table2。 在数据库表1中,将candidate_id保持为主键,而表2将candidate_id保持为外键 […]

ObjectContext.ExecuteStoreCommand,如何在调用之间清除参数?

我使用不同的命令和不同的参数多次调用ObjectContext.ExecuteStoreCommand,尽管我对几个命令使用相同的参数列表(对象)。 我收到以下exception: System.ArgumentException: The SqlParameter is already contained by another SqlParameterCollection. 有没有办法清除调用之间的参数,就像我直接使用ADO.NET一样? 更新了代码示例: string sqlDeleteWebUserGreen = “delete WebUserGreen where WebUserId = @WebUserId”; string sqlDeleteWebUserBlue = “delete WebUserBlue where WebUserId = @WebUserId”; var argsDeleteWebUserXref = new DbParameter[] { new SqlParameter { ParameterName = “WebUserId”, Value = user.WebUserId } rowsAffectedDeleteWebUserXref += base.context.ExecuteStoreCommand(sqlDeleteWebUserGreen, argsDeleteWebUserXref); rowsAffectedDeleteWebUserXref += base.context.ExecuteStoreCommand(sqlDeleteWebUserBlue, argsDeleteWebUserXref); […]

ObjectSet .AddObject()与EntityCollection .Add()

假设我有两个EntitySets,“Teams”和“Players”。 我正在为系统添加新的团队,为了争论,让我说我从一个文件中添加了一千个团队(包含重复项)。 该系统包含100个团队开始。 我的目标是避免重复,而不为每个添加的团队调用SaveChanges()。 该过程是查询newteam尚不存在,然后添加新团队(如果不存在)。 var team = (from t in context.Teams where t.Name == newTeam.Name select t).FirstOrDefault(); if (team==null) –Add New Team 如果我使用context.Teams.AddObject(newTeam);添加context.Teams.AddObject(newTeam); 或context.AddObject(“Teams”,newTeam); team.Count()将保持为100,如果再次运行查询,var团队将为null。 但是,如果我改为使用player.Teams.Add(newTeam); 添加团队,一切都很完美,除了我必须有一个玩家添加NewTeam,该玩家将成为所有新团队的成员。 在调用player.Teams.Add(newTeam); 该查询将返回新团队。 var team = (from t in player.teams where t.Name = newTeam.Name select t).FirstOrDefault(); player.Teams.Count()会增加一个。 在第一个示例context.Teams是一个ObjectSet,而在player.Teams.Add Teams是一个EntityCollection 。 我认为这些行为会相同,但事实并非如此。 有没有办法让ObjectSet表现得像EntityCollection ? 我想在从文件中添加所有团队之后只调用一次SaveChanges。 还是有更好的方式,我没有看到? 谢谢!

如何在SQL事件探查器中查看SQL查询?

当我发布更新查询或其他更改数据库中的数据的数据操作语言(DML)查询时,使用Entity Framework 4,如何查看发送到SQL Server的查询? 假设我做了类似的事情: someEntityObjectInstance.SomeProperty = newValue; context.SaveChanges(); 在这种情况下,没有ObjectQuery来执行ToTraceString(),所以我无法真正看到幕后发生了什么。 我相信有一些Microsoft SQL Server工具,比如探查器或者可以帮助我查看查询的东西。 另外,我认为VS 2010 Ultimate中的一些Intellitrace会做同样的事情吗? 你有没有可以教我如何使用SQL 2005 Profiler,如果有这样的事情? 更新 我正在查看SQL Server 2005 Profiler中的跟踪,但是当我发出context.DeleteObject()调用或更新对象并调用context.SaveChanges() ,我在Profiler中看不到UPDATE或DELETE查询。 我只看到奇怪的SELECT查询。

发生了引用完整性约束违规

我正在尝试更新现有实体。 我有以下代码: public MamConfiguration_V1 Save(MamConfiguration_V1 item) { mMaMDBEntities.MamConfiguration_V1.Attach(item); mMaMDBEntities.ObjectStateManager.ChangeObjectState(item, System.Data.EntityState.Modified); mMaMDBEntities.SaveChanges(); return item; } 但Attach方法抛出exception: 发生了引用完整性约束违规:定义引用约束的属性值在关系中的主体和从属对象之间不一致。 我怎样才能解决这个问题?

从Entity框架返回自定义对象并分配给对象数据源

我需要一些问题的指导,我正在使用Entity Framework 4.0,我有一个DAL和BLL并且在页面上绑定到ObjectDataSource。 我不得不使用PIVOT和动态SQL编写存储过程,以便按照我想要的方式从多个实体返回数据。 现在我想弄清楚如何让Entity Framework返回一个我可以绑定到页面上的ObjectDataSource的自定义对象,我需要使用自定义对象或动态对象,因为存储过程可以返回任意数量的列所以我不能使用强类型类或实体,我还需要能够将它与ObjectDataSource绑定。 有人能指出一个很好的方法来做这个以及如何定义我的function? 请提供一些代码示例。 我读到我应该尝试使用List返回一个对象,因为EF不支持返回数据表/数据集,到目前为止我有以下内容,但我知道这是不正确的。 我没有太多使用仿制药,如果你能指出如何做到这一点,我相信这对很多人都有帮助。 请提供该函数的代码示例以及如何将ObjectDataSource绑定到返回对象? 非常感谢您的帮助! 感谢您的帮助Richard根据您对使用DbDataRecord的建议,这就是我现在的function DAL中ObjectDataSource C#函数 public List GetData(int product_id) { List availableProducts = new List(); var groupData = context.ExecuteStoreQuery(“exec spGetProducts @ProductID={0}”, product_id); availableProducts = groupData.ToList(); return availableProducts; } ASPX页面中的ObjectDataSource 现在,当我访问页面时,我收到此错误: 结果类型“System.Data.Common.DbDataRecord”可能不是抽象的,必须包含默认构造函数 这是因为ExecuteStoreQuery期望被定义为类还是实体? 如何根据存储过程结果创建一个对象并将其分配给它?

Sequence包含多个匹配元素 – 使用Entiity Framework添加项目

我用谷歌搜索了这个,并没有得到任何答案,我的特殊情况。 我以一种简单的方式使用entity framework。 我正在尝试将记录添加到Memberproduct表中。 但是我得到了一个没有意义的例外。 任何想法在这里有什么问题? MemberProduct类: public class MemberProduct :ISaleable { public void ProcessSale() { throw new NotImplementedException(); } private int id { get; set; } private string productName { get; set; } private decimal price { get; set; } private TaxClass taxClass { get; set; } private int quantity { get; set; } […]

用entity framework执行自定义sql?

我需要执行一个自定义查询,它将被保存在数据库中的某个地方,我需要它返回数据表或数据集并将其绑定到gridview,它将自动生成列为true。 我的所有数据访问层都与entity framework完美配合,但对于某些特定场景,我需要这样做,我想知道我是否应该将ado.net与entity framework结合起来,或者如果EF能够以某种方式实现它

StoreGeneratedPattern是什么意思?

我正在做EF设计,谁能告诉我StoreGeneratedPattern是什么意思? 我无法在网上找到一个简单直接的答案。