关键词:
【中文标题】如何在实体框架和 Mysql 中使用规范函数【英文标题】:how to use canonical functions in Entity Framework and Mysql 【发布时间】:2015-07-25 22:47:38 【问题描述】:我想使用 MySql 数据库在 EntityFramework 中将时间跨度添加到 DateTime。
我尝试过使用DbFunctions.AddMinutes(someminutes)
和EntityFunctions.AddMinutes(someminutes)
,但是当我执行时我得到了类似的异常
FUNCTION projectName.AddMinutes 不存在
我已经用谷歌搜索但找不到如何执行规范函数。虽然有一个函数列表,但我还是不知道它们属于哪个类 https://msdn.microsoft.com/en-us/library/bb738563.aspx
我正在使用
-
MySql.Data.Entities 6.8.3.0
EntityFramework 6.0.0
MySql.Data 6.8.4
MySql.Web 6.8.4
MySql(数据库)5.6.17
我的 Linq 查询如下
IQueryable<OrderViewModel> orders = _dbContext.Orders
.OrderByDescending(x => x.ID)
.Select(x => new OrderViewModel
ID = x.ID,
AddedOn = DbFunctions.AddMinutes(x.AddedOn, diffMinutes).Value,
Customer = (x.IsGuestCheckOut == true ? x.CustomerEmail : x.Customer.FirstName + " " + x.Customer.LastName),
Phone = x.Phone,
TotalAmount = x.TotalAmount,
OrderStatus = x.OrderStatus );
在某些应用条件和分页的地方
【问题讨论】:
你是否在 usings 中添加了 System.Data.Entity 命名空间? @AdilMammadov 是的,它已经在那里了。 【参考方案1】:其实我误会了它不是的错误
FUNCTION projectName.AddMinutes 不存在
但是
FUNCTION databaseName.AddMinutes 不存在
我不知道问题是什么。我有不兼容的驱动程序/连接器吗,我不知道。
为了解决这个问题,我刚刚创建了名为 AddMinutes 的函数,它在内部调用 DATE_ADD() 函数。函数定义如下
CREATE FUNCTION `AddMinutes`(actualDateTime datetime, minutesToAdd int)
RETURNS datetime
BEGIN
RETURN DATE_ADD(actualDateTime, INTERVAL minutesToAdd MINUTE);
END
我知道这不是正确的解决方案,而是 HACK
【讨论】:
【参考方案2】:AddMinutes 方法是 DateTime 类的一部分,因此您可以使用 DateTime 类的实例,即
DateTime dateNow = new DateTime.Now;
dateNow.AddMinutes(someminutes);
DbFunctions.AddMinutes(expression, number) 此函数只能出现在 LINQ to Entities 查询中 (https://msdn.microsoft.com/en-us/library/dn220081(v=vs.113).aspx):
Context.Train.Where(x => EntityFunctions.AddMinutes(x.Start, 10) > DateTime.Now)
【讨论】:
你确定你的mysql驱动支持规范函数吗? 如何检查驱动是否支持规范函数? 昨天我检查了你在 MSSQL 数据库上的 linq 查询,它可以正常工作。今天,我将在我的 Windows 上安装 MySql 数据库并检查你的 linq 查询。我会写你我使用什么样的连接器,条件是它可以工作。 FUNCTION projectName.AddMinutes 不存在 它是 FUNCTION databaseName.AddMinutes 不存在。我做了一个黑客来解决这个问题。我创建了内部调用 DATE_ADD() 的 AddMinutes 函数如何在实体框架代码优先方法中使用表值函数?
】如何在实体框架代码优先方法中使用表值函数?【英文标题】:Howtousetablevaluedfunctioninentityframeworkcodefirstapproach?【发布时间】:2013-05-2708:37:34【问题描述】:我正在使用EntityFramework进行一个项目,现在我遇到了一种情况,我需... 查看详情
如何在 c# 实体框架核心中使用 FromSqlRaw() 将 OUTPUT 参数发送到 MySql 存储过程
】如何在c#实体框架核心中使用FromSqlRaw()将OUTPUT参数发送到MySql存储过程【英文标题】:HowsendOUTPUTparametertoMySqlstoredprocedureusingFromSqlRaw()inc#entityframeworkcore【发布时间】:2021-10-0722:27:51【问题描述】:在VisualStudioCodeC#项目中,我使... 查看详情
在实体框架中使用存储过程
...的代码,并且我已经在那里编写了存储过程。我的问题是如何在我的Web应用程序中调用该存储过程。存储过程:A 查看详情
如何使用实体框架和 MySQL 获取每个组的最新记录,包括相关实体
】如何使用实体框架和MySQL获取每个组的最新记录,包括相关实体【英文标题】:HowtogetlatestrecordforeachgroupusingEntityFrameworkandMySQLincludingrelatedentity【发布时间】:2013-10-1005:08:28【问题描述】:我正在使用带有MySQL数据库和DbContext的... 查看详情
如何在实体框架中使用 unsigned int / long 类型?
】如何在实体框架中使用unsignedint/long类型?【英文标题】:Howtouseunsignedint/longtypeswithEntityFramework?【发布时间】:2014-12-0520:55:26【问题描述】:long数据类型的类属性在添加新迁移(代码优先)时正确映射,但mysql的EF提供程序会... 查看详情
具有实体框架并使用 orderby 和 skip/take 的规范模式
...意到它没有OrderBy和Skip/Take功能,而且我找不到任何显示如何使用该 查看详情
如何使用实体框架代码优先的现有存储过程和函数
】如何使用实体框架代码优先的现有存储过程和函数【英文标题】:Howtouseexistingstoredprocedure&functionswithEntityFrameworkCode-first【发布时间】:2017-01-2602:24:13【问题描述】:我正在使用EntityFramework.Functions库,当我们使用实体框架代... 查看详情
如何在实体框架中映射 CONTAINSTABLE 函数(代码优先)?
】如何在实体框架中映射CONTAINSTABLE函数(代码优先)?【英文标题】:HowtomapCONTAINSTABLEfunctioninEntityFramework(code-first)?【发布时间】:2014-05-1622:17:11【问题描述】:感谢https://codefirstfunctions.codeplex.com/,现在可以在实体框架中映射... 查看详情
将 MySQL PASSWORD() 与实体框架一起使用
】将MySQLPASSWORD()与实体框架一起使用【英文标题】:UsingMySQLPASSWORD()withEntityFramework【发布时间】:2014-12-2317:31:35【问题描述】:我们有一个旧的MySQL数据库,它使用MySQL函数PASSWORD()存储密码。有没有办法在C#中使用实体框架来选... 查看详情
如何在 spring data jpa 中使用预测和规范?
】如何在springdatajpa中使用预测和规范?【英文标题】:Howtouseprojectionsandspecificationswithspringdatajpa?【发布时间】:2017-06-0105:40:02【问题描述】:我无法同时使用SpringDataJPA预测和规范。我有以下设置:实体:@EntitypublicclassCountry@Id@Ge... 查看详情
如何在使用实体框架时获取所有用户角色
】如何在使用实体框架时获取所有用户角色【英文标题】:howtogetalluserroleswhileusingentityframework【发布时间】:2011-09-2707:08:32【问题描述】:我在我的asp.net应用程序中使用实体框架和成员资格。在其中一个页面中,我需要通过加... 查看详情
如何在实体框架中循环创建和删除记录
】如何在实体框架中循环创建和删除记录【英文标题】:HowdoIcreateanddeleterecordsinEntityFrameworkinaloop【发布时间】:2022-01-0916:50:26【问题描述】:我们有一个postgres数据库来存储Event对象并使用EntityFramework作为我们的ORM。在定期运行... 查看详情
如何使用实体框架过滤实体中的所有内容
】如何使用实体框架过滤实体中的所有内容【英文标题】:HowtofiltereverythingfromanEntityusingEntityFramework【发布时间】:2012-09-1923:24:32【问题描述】:我正在使用VS2010、VB.NET和实体框架。我的应用程序中有一个文本框,您可以在其中... 查看详情
如何使用 MVC 和使用 .Net 的实体框架在表中动态添加数据库字段?
】如何使用MVC和使用.Net的实体框架在表中动态添加数据库字段?【英文标题】:HowtoadddatabasefieldintabledynamicallyusingMVCandEntityFrameworkusing.Net?【发布时间】:2014-05-0612:26:56【问题描述】:我正在开发一个.Net应用程序,并且我有可用... 查看详情
带有实体框架的自定义函数
...EntityFramework【发布时间】:2014-08-1210:13:59【问题描述】:如何在实体框架中使用自定义函数?我正在尝试使用实体框架调用模型定义的函数。我使用.NetFramework4.5我正在以XML格式打开实体模型(.edmx)文件。我在\'edmx:StorageModels\'部分... 查看详情
如何使用依赖注入在实体框架中执行具有多个模型的查询
】如何使用依赖注入在实体框架中执行具有多个模型的查询【英文标题】:HowtoexecuteQuerieswithmultiplemodelsinEntityframeworkwithDependencyInjection【发布时间】:2011-12-2712:29:35【问题描述】:我尝试在我的MVC应用程序中使用依赖注入和实体... 查看详情
使用 MySQL 和实体框架 6 StrongTypingException 错误
】使用MySQL和实体框架6StrongTypingException错误【英文标题】:UseMySQLandEntityFramework6StrongTypingExceptionerror【发布时间】:2016-09-1910:03:27【问题描述】:我在使用EntityFramework6和MySQL时遇到了一些麻烦。我使用VisualStudio2015和EntityFramework6... 查看详情
实体框架核心中等效的 SQL RIGHT 函数
】实体框架核心中等效的SQLRIGHT函数【英文标题】:SQLRIGHTfunctionequivalentinEntityframeworkCore【发布时间】:2019-02-1206:17:08【问题描述】:我正在处理一个NetCore项目,使用实体框架、mysql数据库和pomelo框架。我需要执行此查询,以便... 查看详情