随笔分类 - EF
摘要:.net6的CS8600错误: 打开project文件,把下一行注释掉即可: <!--<Nullable>enable</Nullable>-->
阅读全文
摘要:问题:System.TypeLoadException: Method 'get_CoreOptions' in type 'Microsoft.EntityFrameworkCore.Internal.RelationalDatabaseFacadeDependencies' from assem
阅读全文
摘要:错误 1 错误 175: 具有固定名称“Oracle.DataAccess.Client”的 ADO.NET 提供程序未在计算机或应用程序配置文件中注册或无法加载。有关详细信息,请参阅内部异常。 安装 ODTwithODAC,注意32位和64位的区别。
阅读全文
摘要:根据实体类生成表结构SQL: PM> Enable-Migrations -ProjectName Domain -StartUpProjectName Handler -Force PM> Add-Migration Goods -ProjectName Domain -StartUpProjec
阅读全文
摘要:1.用nuget安装npgsql和EF注意,Nuget一定要安装Npgsql的2.2.7版本,更高版本nuget在后面安装EF的时候无法自动解析。install-Package Npgsql -Version 2.2.7install-package Npgsql.EntityFramework2....
阅读全文
摘要:基础提供程序在 Open 上失败。The underlying provider failed on Open.解决:安装最新的ODTwithODAC121024。
阅读全文
摘要:一开始用下面的方法映射,Property(p => p.IsFixed).HasColumnName("IS_FIXED").HasColumnType("number(1,0)");结果报告错误:错误 0040: 类型 number(1,0) 未使用命名空间或别名进行限定。只有 PrimitiveType 才可以在不限定的情况下使用。后来改用下面的方法映射则成功了:Property(p => p.IsFixed).HasColumnName("IS_FIXED").HasColumnType("odp_inte
阅读全文
摘要:假设有两张表:A表和B表。A表与B表在数据库中的关系是一对多,但我们需要在EF中映射为一对一。首先在A实体类和B实体类中互相为对方增加一个实体类的属性:public A{ public B B {get;set;}}public B{ public A A {get;set;}}然后在A的Config文件里用Fluent API配置:public class AConfig :EntityTypeConfiguration{ public AConfig(){ HasOptional(a => a.B).WithRequired(b => b.A); }}B的Config可以不用.
阅读全文
摘要:如果Oracle CodeFirst模式下要用EFProviderWrapperToolkit,那么会报告以下错误:提供程序不支持 DatabaseExists。这个错误是因为Oracle CodeFirst是一个Fake CodeFirst,它其实不支持根据实体类生成数据表的。换言之,我们的CodeFirst只是把Table与Entity做了一次手工映射。因为Oracle的数据库是已经存在了的,因此没有必要做数据库存在与否的检测。况且ODP.NET也不支持,因此当调用EFProviderWrapperToolkit的DbProviderServicesBase.DbDatabaseExist
阅读全文
摘要:用EF搞Oracle的fakeCodeFirst 时,一直报错以下错误:对类型“System.Data.OracleClient.OracleConnection”的存储区提供程序实例调用“get_ProviderFactory”方法后,返回 null。存储区提供程序可能未正常运行。同时还报告OracleConnection过时了:'System.Data.OracleClient.OracleConnection' is obsolete: 'OracleConnection has been deprecated. http://go.microsoft.com/f
阅读全文
摘要:报告错误:Oracle.DataAccess.Client.OracleException: ORA-12154: TNS:could not resolve the connect identifier specified解决办法:1.先配置好tnsnames;2.到Oracle安装目录下面(如:C:\oracle\product\10.2.0\client_1\network\ADMIN),找到tnsnames.ora文件;3.复制tnsnames.ora文件到Oracle Client的admin目录下面(如:C:\app\Administrator\product\11.2.0\cli
阅读全文
摘要:报告错误1:指定的存储区提供程序在配置中找不到,或者无效。报告错误2:System.Data.ProviderIncompatibleException: The provider did not return a ProviderManifest instance. ---> System.ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed.解决办法:安装ODTwithODAC1120320_32bit ,到oracle主页可以下载:h
阅读全文
摘要:我们可以把一个EDMX文件划分为多个类图:1.在VS中打开EDMX设计器;2.切换到“模型浏览器”属性设置窗口;3.在diagrams上右键菜单中选择“添加新的关系图”;4.在原来的关系图上可以自由地“剪切”类对象,然后“粘贴”到新的关系图上;5.如果一个类对象需要在多个关系图上显示,那么可以用“复制-粘贴”的方式实现。详细内容见:http://msdn.microsoft.com/en-us/data/jj519700.aspx
阅读全文
摘要:oracle在DB First模式下,int类型的字段会自动映射为decmial类型的属性。我们可以通过自定义类型映射进行“纠整”。在app.config 自定义映射规则: 在VS2012中,以上配置有时会失效。有时候随便编辑一下app.config再编译又没问题了。实在不行重启动VS再编译又可以通过了。
阅读全文
摘要:public void Attach(string entityName, object entity, params string[] navigationProperties) { ObjectContext objectContext = ((IObjectContextAdapter)_Context).ObjectContext; objectContext.AttachTo(entityName, entity); //把detach的entity attach到ObjectContext objectContext.ObjectStateManager...
阅读全文
摘要:问题在调用Attach(user)时报告以下错误:An entity object cannot be referenced by multiple instances of IEntityChangeTracker原因实体对象user的DbContext还没关闭,此时不允许再Attach到另一个DbContext上。Attach的实体对象,必须是脱离DbContext的管制。解决先关闭做查询的DbContext,再Attach到做更新的DbContext中。
阅读全文
摘要:EF在N-Tier架构下的保存注意事项 szjay前提一个实体对象必须先进入ObjectContext中才能进行增、删、改的操作。新增新增的过程很简单,调用AddObject方法即可。修改如果要修改的实体对象是Detached状态,那么必须先调用AttachTo方法。AttachTo方法告诉ObjectContext,虽然当前实体对象没有在ObjectContext中存在,但它并不是一个新的(Added状态)实体对象,而是在数据库中存在,但ObjectContext中未装载而已。如果不采用AttachTo方法,那么就需要从数据库中查询一次到Ob...
阅读全文