Entity framework ADO.NET实体:从3个表中获取数据

我有以下表格结构: Table: Plant PlantID: Primary Key PlantName: String Table: Party PartyID: Primary Key PartyName: String PlantID: link to Plant table Table: Customer PartyID: Primary Key, link to Party CustomerCode: String 我希望客户实体对象具有以下字段: Party

Entity framework ADO.NET数据服务或实体框架-学习哪一个?

我有一点空闲时间,我计划赶上一些新技术。我从ASP.NET开发人员开始.NET开发生涯。目前我已经完成了ASP.NET开发,因此我已经完成了任何前端开发。这些天我进入了业务层和DAL开发,主要关注WCF服务开发,我将继续这样做。在这种情况下,哪一个会有助于我前进?ADO.NET数据服务或实体框架?这是两个完全独立的项目: ADO.NET实体框架是一种数据访问和数据建模技术,用于处理数据库存储、建模对象等 ADO.NET Data Services是通过浏览器和URL向广大受众公开此类数据模型的

Entity framework 在ASP.NET MVC解决方案中使用实体框架保存下拉列表选择

我正在寻找关于下拉列表选择和POCO EF选择持久性的体面模式的建议 在我的视图模型中,我有一个IEnumerable列表,其中国家是通过EF加载的POCO。视图模型上有一个Address属性,它在其Country属性上采用当前或用户选择的值。在视图中,我通过Html.DropdownListFor()显示这些内容,因此: 到目前为止,一切都很好,可以通过默认的ModelBinder进行回发,它为我提供了一个带有Address.Country的视图模型。当然,Address.Country只使用

Entity framework 如何持久化使用实体框架在运行时创建的类型

我有一个web应用程序,我希望我的用户动态创建一个类型…我可以使用反射来实现这一点,但我不确定如何使用Entity framework持久化该类型您不能这样做,因为Entity framework将不具有动态创建类型的映射元数据,上下文将没有新实体的ObjectSet,数据库将没有新类型的表 EF元数据的中央存储是类,但在当前版本的EF中,不应在运行时修改此类。它没有提供任何方法来做到这一点。修改(数据库描述)、(映射描述)和(实体类描述)文件是唯一的方法。因此,EF的任何“动态”方法都意味着:

Entity framework 实体框架3.5中处理并发的锁表

我们有一个web服务,它接受车辆上发生的任何故障的XML文件。然后,web服务使用EF3.5将这些文件加载到超规范化数据库。通常,XML文件的处理时间为10-20秒。我需要处理两种并发场景: 不同的车辆同时发送XML文件:这不是问题。EF的默认乐观并发性确保我能够将所有这些文件存储在相同的表中,因为它们的数据是互斥的 同一车辆同时发送多个文件:当我的系统试图同时将相同或类似的数据写入数据库时,这会产生问题。这并不罕见 我们需要第二点的解决方案 为了解决这个问题,我引入了一个锁表。基本上,当我开始

Entity framework 如何对每个类型映射只查询表的一个级别?

我使用EntityFramework4.1的代码优先方法将类层次结构映射到一系列表 我定义了以下类: [Table("FooBases")] public class FooBase { public int Id { get; set; } public string Name { get; set; } } [Table("Foo1s")] public class Foo1 : FooBase { public string Details { get; set;

Entity framework 实体框架/工作单元架构问题

我非常熟悉UoW、Repository模式等。但是看到Entity Framework模式的各种实现,我很好奇为什么有人会在他们的存储库中使用Save或Add方法。如果您使用存储库为您获取一个对象的新实例,我会想象有人已经这样做了 public Customer GetNewCustomer() { Customer customer = new Customer(); ... any initialization code here ... _context.Cust

Entity framework EF+;具有复杂对象图的三层应用程序中的WCF。使用哪种模式?

我有一个关于EF和WCF的架构问题。 我们正在使用实体框架(带有Oracle数据库)和基于WPF的GUI开发一个三层应用程序。GUI通过WCF与服务器通信 我们的数据模型非常复杂(超过一百个表),有很多关系。我们目前正在使用默认的EF代码生成模板,在跟踪实体状态方面遇到了很多问题 客户机上的用户界面也相当复杂,有时一个包含50多个对象的对象图被发送到一个用户界面,实体之间有几层聚合。一个重要的目标是能够在BLL层中轻松确定客户机上修改了哪些对象,以及新创建了哪些对象 管理两层之间的实体和实体状态

Entity framework 实体框架4.1对象名称无效

我在实体框架中遇到了以下错误,我一辈子都搞不清是什么导致了它 无效的对象名称“dbo.User” 数据库中的实际表名称为Users,我通过右键单击并选择“updatemodelfromdatabase”将其添加到我的实体模型中。我的项目中还有大约六个其他模型,它们都连接到同一个数据库,具有多表名,并且以完全相同的方式更新,没有任何问题。似乎出于某种原因,EF在尝试执行更新时会从我的表名中删除“s”。正如您可以从下面的代码中看到的,我在更新之前执行了一个选择,这个选择没有问题 我还尝试过删除实体,

Entity framework 关于使用代码优先、存储库模式和n层的一些问题?

我想先使用EF代码。我正在使用存储库模式。我想实现一个n层架构。我真正想要的是使用TDD,但我遇到了聚合路由的问题。我的问题是 我有一个博客对象。从这个博客对象可以添加相关的文件。伟大的因此,本质上我有一个聚合根,我为其创建了存储库,然后我需要添加一些方法,允许我将相关文件“添加”到博客中。但是我应该把这个放在哪里呢?这是一个数据访问层的东西,所以我真的希望它在那里。但老实说,这也是一个业务逻辑挑战。该产品的一部分是能够添加assoc文件。那么,我应该在DAL或BLL中添加Assoc文件的逻辑吗

Entity framework 如何让空间类型在EF中工作?

我有一个带有SQL Geometry列的表。现在我正在尝试使用EF,但映射程序不想包含它(现在应该支持它了,)。另外,我在EF设计器中找不到空间类型 到目前为止,我已经做到了: PM> Install-Package EntityFramework –IncludePrerelease 'EntityFramework 5.0.0-beta2' already installed. MyProject already has a reference to 'EntityFramework

Entity framework 可空属性到实体字段,实体框架通过代码优先

使用数据注释Required如下所示: [Required] public int somefield {get; set;} 在数据库中将somefield设置为非空,如何设置somefield 为了允许空值?,我尝试通过SQLServerManagementStudio设置它,但EntityFramework将其设置回notnull只需从字符串somefield属性中省略[Required]属性。这将使它在数据库中创建一个NULLable列 要使int类型在数据库中允许null,必须在模型

Entity framework 使用ViewModel中的空值覆盖实体

我只是在我的MVC应用程序中遇到了一个小错误 管理员可以编辑用户配置文件。包括用户所处的角色 所以我有一个“EditUser”的视图模型: 问题是,当我发回编辑表单时,设置为Scaffold false的值为null。这似乎有点合乎逻辑,因为这些属性没有编辑框 因此,当我保存实体时,它会用null覆盖值。(例如,如果我更新用户名并保存,则用户密码将被null覆盖,EF将抛出错误) 是否有任何方法可以自动更新这些值(根据我能够编辑的值(元数据类)?否则,如果我将它们从实体框架复制到一个新获取的实体

Entity framework 用于检索派生类型的OData查询

当我在OData规范的URI语法中寻找答案的时候,我想如果什么都没有出现的话,也许值得一问 如果我有一个实体“base”和一个从base继承的实体“Derived”,我最终会得到一个Odata查询,该查询可以检索base的所有实例: blah.svc/bases() 但是,我可以使用什么查询来仅返回这些派生的实例呢?我尝试过各种形式的: blah.svc/base()?$filter=isof(派生) 但是没有用 不幸的是,我在网上很难找到这样的例子,那里的大部分内容都在谈论如何在派生的实体上没

Entity framework 模型未从我的数据库中读取(实体框架)

我用数据库创建了简单的MVC应用程序。 首先,我创建了一个数据库,初始化了数据库,然后从数据库创建了一个模型,应用程序开始工作。 然后我决定用完全不同的值加载数据库(但表/字段的定义保持不变) 重新加载数据库后,我的应用程序不会显示数据库中的任何数据。使用调试器,我发现我的应用程序无法从表中获取任何数据。 更糟糕的是,我注意到除了我的数据库TestDB之外,数据库浏览器还显示了TestDB.mdf1数据库,其定义与TestDB.mdf相同,但表是空的 代码如下: public ActionRes

Entity framework RefreshMode.ClientWins或StoreWins

我有一个使用实体框架的简单windows窗体应用程序,我被这种情况绊住了: -用户在MDIform内打开一个windowsform(SearchForm),显示产品详细信息及其实际库存数量 -用户在MDIform(与SearchForm一起)中打开第二个windowsform(POSForm),在销售productos后,该产品的库存将更新为新数量并保存到DB,此时,另一个打开的winform(SearchForm)必须用新数据更新显示的数据,我正在尝试重新加载上下文,重新实例化上下文,刷新表单

Entity framework T4模板和EF以及数据库模式应用程序中的代码生成器

我目前正在准备一个进程(使用windows应用程序),通过将该应用程序指向数据库表,可以生成EF的POCO对象类 我见过T4模板和VS插件,它们有助于在VS中实现这一点。不过,VS解决方案需要T4模板文件。我们不想走这条路。我们想要的是将这个应用程序生成的类复制到解决方案中,这样就可以使用它了 T4模板的工作方式是,只要对模板进行更改,它就会应用于类文件。我想做的是将新的应用程序指向数据库,并说出表A、B、C。该应用程序将读取列、类型、关系,并创建文件夹的对应类。开发人员然后复制这些类并粘贴到V

Entity framework 改进反向工程数据库时的导航属性名称

我正在使用EntityFramework5和VisualStudio以及EntityFrameworkPowerToolsBeta2对中等大小的数据库(大约100个表)进行反向工程 遗憾的是,导航属性没有有意义的名称。例如,如果有两个表: 创建表格联系人( ContactID INT标识(1,1)不为空, ... 约束PK_联系人主键群集(联系人ID ASC) } 创建表项目( 投影整数标识(1,1)不为空, TechnicalContactID INT不为空, SalesContactID I

Entity framework 未定义FK属性时,无法删除子项

我有以下SQL表(为了简单起见删除了列): 然后我创建了POCO,如下所示: public class Pack { public Int32 Id { get; set; } public virtual ICollection<File> Files { get; set; } } // Pack public class File { public Int32 Id { get; set; } public int PackId { get; set; }

Entity framework 如何为POCO类实现和测试复杂的业务规则

我使用的是EF5,在POCO类中有实体。我的第一个问题是什么是实现业务规则和验证的最佳位置 我的第一个猜测是将它直接放在POCO类中的某个Validate()函数中,该函数在触发SaveChanges()时从DBContext调用。 这很有效,但有些规则需要跨多个实体进行验证,就像这样 类别发票示例: if(this.Items.Where(i=>i.Price > 100).Count() > 0) { //mark invoice for review th

Entity framework 删除实体框架中的对象及其所有相关实体

有人知道如何在不手动遍历对象图并删除每个对象的情况下删除EF中的对象及其所有相关实体吗 例如,我得到了SalesOrder和SalesOrderDetails,它们之间的关系为1:N。删除SalesOrder时,我希望自动删除所有SalesOrderDetails 这在EF中可能吗?您不应该在实体框架中这样做。所有流行的关系数据库都支持在外键上级联删除,这也是非常有效的。我建议你就这么做。在这篇文章中,Alex Jamese(他发布了他的答案)有一篇关于这个主题的完整文章 EF负责保存更改()

Entity framework 无法在LINQ to Entities查询中构造实体或复杂类型

我有两个看起来完全相同的函数,只是它们创建了两个不同对象的列表。这两个不同的对象看起来非常相似,但当我尝试在其中一个对象上运行其中一个函数时,我会收到错误消息,“无法在LINQ to Entities查询中构造实体或复杂类型。”。有人能用非常简单的话向我解释一下发生了什么事吗?另外,您能告诉我如何更改代码以使其正常工作吗?谢谢你,艾伦 职能1(工程): 公共静态列表ListChartApplications() { 使用(var db=new LatencyDBContext()) { var

Entity framework 如何保护EF连接字符串?

我在一个独立的WPF客户端中使用EntityFramework5。如何配置实体框架,使连接字符串中的数据库密码在内存中不是纯文本?处理数据库连接字符串安全性的主要方法有两种 正如@MUG4N和@BNicoll正确指出的那样,您可以在app.config(或web.config)中加密连接字符串,这将避免轻松读取设置。然而,在这种情况下,实际的用户名和密码仍然存储在机器上,这意味着只需稍加努力,您就可以检索明文密码 在我看来,更好的解决方案是使用运行应用程序的帐户直接使用SQL进行身份验证。这意味

Entity framework WebApi OData:$filter';任何';或';全部';查询不起作用

首先,使用ASP.NET WebApi教程,我创建了一个基本的。该服务用于返回OData$filter查询的json 当我对多值属性执行OData查询时,它抛出一个ODataException 这是我试图使用的OData查询 ~/api/Blogs?$filter=any(标记、名称+eq+'csharp') 我的ApicController如下所示: public class BlogController : ApiController { public BlogsController

Entity framework 实体框架误读函数导入新手上的存储过程

我不是ef方面的专家,所以几乎可以肯定这是我的错,但接下来 知道为什么这个sp被导入ef,而ef说它没有输出吗 SELECT TaxiAuthority.AuthorityID, [Cardiff_region_1].NAME FROM [Cardiff_region] AS [Cardiff_region_1] INNER JOIN YourCompany_TaxiAuthority ON Cardiff_region_1].ID = TaxiAuthority.LALinkID WHERE

Entity framework 实体框架5-代码优先-插入标识值?

我有一个定义了PK的实体,它是基础数据库中的标识列。在大多数情况下,我只是让SQL Server为我生成值。但是,在某些情况下,我希望提供一个值,而不是SQL Server生成一个值。我是否能够使用EF 5(首先使用代码)执行此操作?如果是SQL Server,则使用ExecuteSQLCommand发送所需的命令 我创建了这个测试作为一个例子 [Fact] private void IdentityInsertOK() { var sq

Entity framework 如何在LINQ中编写此查询

我有一个带有foreach循环的LINQ查询。一切都很好。但获得价值需要更多的时间。所以有人建议我如何在LINQ查询本身中做到这一点 代码 NormValue = ""; c = 0; var NormValuelist = db.BCont.Where(x => x.BId == BId && x.TNo == Tag).ToList(); foreach (var item in NormValuelist) { if (c == 0) Norm

Entity framework 如何访问新创建的实体上的导航属性

我首先使用实体框架6代码。我在跟踪导航属性和外键时遇到了一些问题。让我举例说明。在本例中,我正在创建一个对象,并观察在创建FK引用的实体时导航属性发生的情况 实体: 域用户{AccountStatus…,UserAccount,UserAccountId}引用UserAccount 用户帐户{UserAccountId…} 第一种情况-导航属性在创建时为空: 第二种情况-引发InvalidOperationExceptionException 因此,我的问题是,如何使用导航属性UserAccou

Entity framework 首先使用EF代码本地化实体的最佳实践

我正在开发一个域模型,首先使用EF代码来持久化数据。我必须增加对多语言的支持,我不想用位置概念污染域模型 我喜欢在数据库中存在一个ProductTranslate表,其中包含标题和语言字段,但在我的域中,标题属于产品实体 有人知道如何获取此信息吗?以下是我首先使用的,并且可以很好地处理代码 定义基本的翻译类: using System; public abstract class Translation<T> where T : Translation<T>, new(

Entity framework 具有存储库的实体框架的实体状态

我正在使用Julie Lerman的EF存储库技术 我的所有实体都实现以下接口 public interface IEntity { EntityState State { get; set; } } 我的所有存储库都调用以下GetList函数 public virtual IList<T> GetList(Func<T, bool> where, params Expression<Func<T, object>>[] navi

Entity framework MVC5标识EF 6流体API错误

我使用的是MVC5,带有默认模板和带有EF6的identity 2.0用户系统 我在我的ApplicationDbContext:IdentityDbContext类中添加了OnModelCreating,以便使用流体API在两个类之间创建多个关系 这导致在运行更新数据库时出现这些错误,即使我没有对这些表进行任何更改: EntityType“IdentityUserLogin”未定义密钥。定义此EntityType的键。 EntityType“IdentityUserRole”未定义键。定义此E

Entity framework WCF数据协定中的EF导航属性

我试图学习一些使用WCF合同的最佳实践。我有一个POCO实体类,如下所示: public class Job : IOwnerEntity<int>, ILoggableEntity { public int JobID { get; set; } public int JobtypeCodeID { get; set; } public string JobName { get; set; } public int CustomerID { get;

Entity framework 如果数据库中的记录已更改,如何更新数据库集?

如果我检测到数据库中的一条记录已被另一个进程更改,并且该记录是我当前数据库集的成员,我如何更新该记录以反映更改的数据库记录的数据?据我所知,如果项目已经存在,则附件将失败 我使用内存中的一大部分数据来更新屏幕上的状态,并允许用户更改数据。其他过程也是如此 我正在使用EF7(core),这可能并不像我是EF新手那样聪明。您可以使用Load()方法从数据库中重新水化受影响的实体: 以防万一,首先要将实体分离 DbContext.Entry(changed).State = EntityState.D

Entity framework 在DbContext中获取用户信息

我正试图使用EF迁移来构建/设置数据库种子,但在使用update database命令时,我的DbContext导致错误 我实现的DbContext有两个构造函数:一个不接受任何参数,另一个接受IUserContext接口。IUserContext接口以字符串形式返回用户名。IUserContext在SaveChanges()方法中用于设置与用户相关的审核字段(例如CreatedBy、UpdatedBy),这些字段对我的所有实体都是通用的。根据IUserContext接口的实现,可以从HttpC

Entity framework CQS和更新现有实体

我只是想弄清楚如何使用CQS更新实体。假设UI允许用户更新特定实体的多个属性,并且在提交时,在后端创建并发送更新命令 我不太明白的是: 从dispatcher接收消息的cmd处理程序是否会从DB中检索现有实体,然后将接收到的库存项目属性映射到数据库,然后保存?或 现有项目的检索是否在发送cmd msg之前完成,然后将其附加到cmd msg(检索到的实体附加到随后发送的cmd) 我的理解是,CQS允许以后更容易地过渡到CQR(如有必要)?对吗 如果是这样的话,上面2的问题是可以从一个看起来与命令/

Entity framework 实体框架多对多级联约束

错误:在表“TenantUnits”上引入外键约束“FK_dbo.TenantUnits_dbo.Units_Unit_Id”可能会导致循环或多个级联路径。指定“在删除时不执行操作”或“在更新时不执行操作”,或修改其他外键约束 我知道这个错误和我的模型中关系的性质有关,但我太困惑了,无法理清它。我很难将我的思想集中在我的模型中涉及的级联和多对多关系上 模型如下: public class Complex { [Key] public Guid Id { get; set; }

Entity framework EF核心2.1价值转换更新问题

我在使用值转换时遇到了一个问题,这在EF Core 2.1中是新的,用于列表到字符串的转换 因为我不需要能够过滤数据库中的枚举值列表,所以我决定将我的枚举值列表映射到一个以逗号分隔的字符串,其中包含int值 转换应如下所示: From: List<EnumType>{EnumType.Value1, EnumType.Value2} To: 1,2 private const char ENUM_LIST_DELIMITER = ','; protected overrid

Entity framework EF Core:有可能有一个动态的默认值吗?例如,取决于另一个值?

例如,我的模型中有两个简单的字符串属性: 公共类模型 { 公共字符串基串{get;set;} 公共字符串MyValue{get;set;} } 在我的OnModelCreating中: modelBuilder .实体() .Property(f=>f.MyValue) .ValueGeneratedOnAdd() .HasDefaultValueSQL(//插入的BaseString属性的第一个字母+其他内容); 这样可能吗?或者默认值只能是常量? 正确的方法是什么?不,不可能。以下是经过

  1    2   3   4   5   6  ... 下一页 最后一页 共 155 页