实体框架(EF6)+MySql数据库第一模型多对多关系错误查询的产生
我有一个具有现有数据库结构和数据的项目.当前项目正在PHP + MySQL上运行,我正在尝试从PHP切换到C#EF 6.0 + MySQL数据库第一次方法. 我已经安装了nuget软件包(EF 6.0和mysql.data,mysql.web,mysql.data.entity,mysql.data.entities)并根据使用mySQL数据提供商进行了修改.直到这种状态,一切都可以完美地工作,我可以从数据库中生成模型,并且可以在每个表上插入数据,而无需任何问题,而是多对多的关系表.我创建了2个带有名称tablea和tableb的虚拟表,以及关系表table_tableb,以寻求有关我的问题的要求. 您可以看到以下模型生成的屏幕截图: 和以下生成的模型: 到这里一切看起来都不错,但是正如我提到的那样,当我尝试插入tablea和tableb之间的关系时,它会失败.您可以在下面看到我的C#代码: public static void Create() { us
12 2024-04-26
编程技术问答社区
为什么当我试图在Where子句中使用一个接口时,L2E会卡住?
我有一个对实体查询的LINQ(使用EF 4),该查询具有一些相当复杂的基于集合的过滤.代码编译正好很好,但是当我尝试运行它时,我会收到以下错误: 无法创建类型" Itextentity"的常数值.在这种情况下,仅支持原始类型(例如'int32,String和guid'). 现在用于代码.我有一个看起来像这样的界面: public interface ITextEntity { int ID { get; set; } string TextValue { get; set; } EntityCollection Products { get; set; } } 这个想法是这些"文本实体"表示存储Product的属性的查找表.如果产品具有颜色,则所有红色产品都将包含带有textValue =" red"的颜色实体,并且将有一个用此接口装饰的颜色实体: public partial class Color : ITextE
4 2024-04-26
编程技术问答社区
如何在ASP.NET MVC中接收从视图到控制器的动态添加值?
我正在ASP.NET MVC中学习一些概念.我正在使用实体框架和Visual Studio 2013 Community Edition.我正在创建一个用于学习的演示应用程序.我已经根据 using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace ManyItemsDemo2.Models { public class Course { public int CourseID { get; set; } public string Title { get; set; } public string Credits { get; set; } public int DepartmentID { get; set; } public virtual Depar
6 2024-04-26
编程技术问答社区
实体框架的这种实现是否会泄漏内存?
我只是在使用语句中使用Web应用程序或控制台应用程序中的语句中使用的实体上下文是否处置了实体上下文. 谢谢! using System; using System.Web; namespace Foo.Model { public partial class FooEntities : ObjectContext { private const string CurrentContextKey = "FooEntities.Current"; [ThreadStatic] private static FooEntities _currentOnThreadStatic; private FooEntities _previousContext; /// /// Gets the current
2 2024-04-26
编程技术问答社区
Entity Framework 4.1和OriginalValues/CurrentValues以及DbContext
我目前正在使用EF 4.1的DBContext,我正在尝试审核所有我的某些实体.我可以捕获实体的任何属性的原始值和当前值,但是我无法弄清楚如何捕获NavigationProperty的关联(外键)原始价值.有没有人知道这个? 解决方案 您必须将外键包含到您的实体中,以便将它们作为正常值跟踪,或者必须将DbContext转换为ObjectContext>,并使用更强大的(更笨重)ObjectStateManager获得实体和关系的实例. 将DbContext转换为ObjectContext使用: var objectContext = ((IObjectContextAdapter)dbContext).ObjectContext; 获取条目使用: var entires = objectContext.ObjectStateManager .GetObjectStateEntries(~EntitySta
2 2024-04-26
编程技术问答社区
不能将类型'System.Collections.Generic.List<AnonymousType#1>'转换为'System.Linq.IQueryable<AnonymousType#2>'。
此查询是没有错误的: var _entityList = context.customer .Join(context.applications, cust => cust.cust_id, app => app.cust_id, (cust, app) => new { customer = cust, application = app }) .Join(context.advices, cust => cust.application.app_id, sa => sa.app_id, (cust, sa) => new { customer = cust, advice = sa })
4 2024-04-26
编程技术问答社区
Entity Framework CTP 5 RelatedTo Attribute不工作
使用实体框架CTP 5我试图在我的班级中列出外国钥匙列表. 但是我一直遇到一个错误,说明找不到相关. 这是代码: public class VertragsVerweis : GenericBLL { [Key] public String Uid { get; set; } public String VertagsVerweisNr { get; set; } public String Bezeichnung { get; set; } public Boolean Reparatur { get; set; } [RelatedTo(RelatedProperty="Artikel")] public List
EF4.0-是否有办法在调试时看到哪些实体连接到哪些ObjectContext?
这是在我的这里的问题. 我正在尝试使用几个月前朱莉·莱尔曼(Julie Lerman)给了我的解决方案.我目前正在使用以下内容来生成一个新的游戏实体,预先访问了我的ObjectContext: Game game = _gameRepository.GetGame(formData.GameID); AutoMapper.Mapper.Map(formData, game); 在存储库中,我尝试将游戏连接到OC,并将其状态设置为"添加",就像她通过以下内容所建议的那样: public Game GetGame(int id) { if (id > 0) { return _siteDB.Games.Include("Genre").Include("Platforms").SingleOrDefault(g => g.GameID == id); } else
8 2024-04-26
编程技术问答社区
在存储过程中解释byte[]。
a Proc我们通过加密搜索字段并比较这些加密值来搜索一个加密字段.不过,我需要做的是传递PROC(通过实体框架4)加密值(作为代码加密的值),但如果未提供该值,也允许null. . 所以我需要传递一个字节[],但是它也需要接受零...这是可能的,还是解决方法是什么?同样,我正在通过实体框架调用存储过程. 谢谢. 解决方案 我们最终通过将其推动为字符串,然后在Proc中解析来使其工作.奏效了.但是我相信我读过一个代表字节[]数组的二进制对象,这也可以起作用. 其他解决方案 给定此存储过程: create procedure dbo.pConvertBytesToInt @bytes varbinary(4) as select convert(int,@bytes) go 以下代码将执行它,如果传递的参数为null: ,则通过null. static int? Bytes2IntViaSQL( byte[] @bytes ) {
0 2024-04-26
编程技术问答社区
部分急于加载子实体(加载特定文件)。
我搜索了一下,了解我可以使用投影来部分加载实体,问题变成了有一种方法可以部分地渴望装载孩子吗? 说我有以下 实体A有 Id Name EntityB 和实体B具有 Id StuffToBeLoaded1 StuffToBeLoaded2 OtherStuffNotToBeLoaded 我如何加载A,而B只有sTECTOBELOADED1和sTECKTOBELOADED2? 我想我无法打电话给.inlucde(" entityb"),否则它已满,是吗? 解决方案 您必须使用带有投影的自定义查询.如果EntityB属性代表集合,则可以使用以下内容: var query = from a in context.EntitiesA select new { a.Id, a.Name, Bs =
2 2024-04-26
编程技术问答社区
一个控制台项目可以重复使用MVC3 EF4项目的代码吗(在同一个解决方案中)?
我目前正在使用实体框架4. 编程ASP.NET MVC3应用程序 必须在后台运行某些任务(例如,处理10k+记录).我正在编写一个控制台应用程序来完成这项工作(也许作为线程或窗口服务运行). 控制台应用和MVC3 EF4项目 由于我在MVC3应用程序中写了很多服务和模型代码,所以我想在控制台项目中重复使用. 可能吗? (由于时间限制,我无法将我们的服务重构为另一个DLL/代码库) 解决方案 如果那样,将服务和模型代码转移到另一个DLL中不应超过10分钟.如果您不想,您甚至不需要更改命名空间 - 只需创建新项目,移动文件,从控制台项目和MVC项目中添加对类库的引用,您应该是完成. 其他解决方案 这取决于您如何构建MVC系统以及将在控制台应用程序中使用的部分. 例如,如果您要在控制台应用中重复使用Controller逻辑,则需要提供众多类的虚假实现.例如HttpContextBase. 如果您使用Session,Cache,HttpCo
4 2024-04-26
编程技术问答社区
在Entity Framework中保存ViewState的错误
我在.NET实体框架4.0工作 我正在使用ViewState来保存实体.而且我也将该实体序列化.但是,当我尝试将数据保存到ViewState时,获取此错误: Microsoft JScript runtime error: Sys.WebForms.PageRequestManagerServerErrorException: Error serializing value 'System.Collections.Generic.List`1[Pc.PrecisionCare2.ModelTypes.Medication]' of type 'System.Collections.Generic.List`1[[Pc.PrecisionCare2.ModelTypes.Medication, PrecisionCare2ModelTypes, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].' 解决方案 也许这对
2 2024-04-26
编程技术问答社区
实体框架中识别关系的正确实现?
假设我有一个实体Author有一个名称可以写0 .. 1 ..或许多实体Book. Book必须由一个Author编写,并且没有Author的谈论Book是没有意义的. 这个(我相信)将被归类为识别关系.使用EntityTypeConfiguration,以下是实现这种识别关系的正确方法吗? public BookMapping() { HasRequired(book => book.Author) .WithMany(author => author.Books) .HasForeignKey(book => book.AuthorID); } 解决方案 它没有识别关系.这只是一对多的关系.为了确定它,您还必须映射由BookID和AuthorID组成的复合主键. HasKey(book => new { book.BookID, book.AuthorID });
2 2024-04-26
编程技术问答社区
如何才能永久解决升级到EF6后出现的 "EdmFunctionAttribute is obsolete "警告?
我正在获取警告" EdmfunctionAttribute是过时的"项目从EF4到EF 6.1.3 : 'system.data.entity.core.objects.dataclasses.edmfunctionattribute'is 过时:'此属性已取代 system.data.entity.dbfunctionAttribute. c:\ {myproject} \ datacontextentityobjects.cs 该属性用于 等各个地方 [EdmFunction("DataContext", "Split")] public IQueryable Split(global::System.String rowData, global::System.String splitOn) { // ... auto-generated code ... } 如果您在错误消息中提到的 *.cs
10 2024-04-26
编程技术问答社区
LINQ理解的非Equijoins
我使用asp.net 4,ef 4和c#,linq和non-equijoins. 在这里,我写了两个非Equijoins的例子. 两者在我的模型中都很好. 因为我是Linq的新手,所以我想问您: 您会建议我在代码中采用哪种语法类型? 更快哪个代码性能? 感谢您的帮助: 在这里一些有用的链接: BB882533.aspx http://msdn.microsoft.com/en-en-us/library/BB311040.aspx http://msdn.microsoft.com/en-en-us/library/BB310804.aspx // Query sintax var queryContents = from cnt in context.CmsContents let cntA = from a in context.CmsContentsAssignedToes s
4 2024-04-26
编程技术问答社区
如何进行web表单的模型验证?
我们有一个具有三层的应用程序:UI,业务和数据.数据层包含实体框架V4并自动生成我们的实体对象.我为实体VendorInfo创建了一个好友类: namespace Company.DataAccess { [MetadataType(typeof(VendorInfoMetadata))] public partial class VendorInfo { } public class VendorInfoMetadata { [Required] public string Title; [Required] public string Link; [Required] public string LinkText; [Required] public string Description;
10 2024-04-26
编程技术问答社区
更新模型时如何使用旧版本的Entity Framework
我正在使用实体框架4.1.10331.0 . 的Web应用程序. 我已经对DB进行了几次更改,现在我需要在Visual Studio中更新模型(Entity Model/EDMX),但是当我更新时,我将获得此屏幕,该屏幕允许Main在 ef5 和 ef6 带有一条消息,"您的项目引用了旧版本的实体框架……" 在更新(甚至创建新的)模型时,我如何使用 ef 4.1.10331.0 ? 升级到 ef5 或 ef6 目前不是一个选择,因为如果我升级,我将不得不进行许多更改.我只希望使用 ef 4.1.10331.0 更新/创建我的模型 预先感谢 解决方案 根据Caius Jard和Daid Browne的指示,我手动更新了EDMX(XML),并且效果很好. IE. 在这种情况下,如果要手动编辑EDMX文件的XML,则最好的解决方案.
8 2024-04-26
编程技术问答社区
EF 4 查询--多参数的问题
避免通过SQL中的无效参数过滤的技巧是以下内容: select * from customers where (@CustomerName is null or CustomerName = @CustomerName) 这对我在linq到SQL的效果很好: string customerName = "XYZ"; var results = (from c in ctx.Customers where (customerName == null || (customerName != null && c.CustomerName == customerName)) select c); 但是,在ado.net ef中,上面的查询对我不起作用;它应该按客户名称过滤,因为它存在,但事实并非如此.相反,它正在查询所有客户记录.现在,这是一个简化的示例,因为我有许多字段,我使用了这种逻辑.但是它从未真正过滤,查询所有记录,并导致超时例外.但是,奇怪
2 2024-04-26
编程技术问答社区
如何创建和填充一个嵌套的ViewModel嘛
我的视图模型具有严重的嵌套.我需要从实体框架4中填充它.我尝试创建一个大linq语句以填充它,但它说它不识别.tolist()方法.它可以很好地编译.运行时错误是 LINQ to Entities does not recognize the method 'System.Collections.Generic.List`1[ProductDepartment] ToList[ProductDepartment] (System.Collections.Generic.IEnumerable`1[ProductDepartment])' method, and this method cannot be translated into a store expression. 在不做几千个数据库调用的情况下,什么是填充这样的东西的更有效的方法? List Products { int ID string Name ...
0 2024-04-26
编程技术问答社区