我有一个场景,在这个场景中,我需要对列进行排序,这是我的EF模型中的用户实体的导航属性。
实体:用户->国家1:n关系
一个简单的SQL查询如下:
SELECT UserId, u.Name, c.Name
FROM users u join countries c on u.CountryId = c.CountryId
ORDER BY c.Name asc;
因此,我尝试使用Linq将上面的SQL查询复制到实体,如下所示-(启用了延迟加载)
entities.users.OrderBy(field => field.country.Name).ToList();
但是,该查询
我是MVC (4)的学习者。我已经看过一些关于MVC4的教程,它们简直太棒了。但它们都使用EF和LINQ to SQL进行数据库操作。如果我想使用T-SQL进行数据库操作,我该怎么做?我应该在Model中还是在另一个库中编写sql查询?我将把我的数据访问层放在哪里?
我用谷歌搜索了这个问题。但是没有找到令人满意的技术。
我读过一些关于ADO.NET实体框架的文章,但我还遗漏了一些东西。现在(不使用EF,不确定这项技术叫什么,只是ADO.NET?)我们将所有的过程存储在数据库中,这样,如果我们必须更改任何东西,我们只需进入数据库并更改一个查询,这非常容易(除了我有100个查询)。
如果我使用EF是正确的,我可以更容易地查询(没有连接,更短的查询),但一切都保存在实体数据模型中。因此,如果我需要更改查询,我将不得不启动VS go in,找到位置并更改查询(我猜这将是linq- to -sql或实体SQL来执行查询)
我只需要一些关于EF和实体SQL与Linq-to-SQL的澄清。
谢谢!
当对sql Server CE数据库运行SQL时,以下查询运行非常慢,我曾希望将其转换为linq for EF。有人对此有什么建议吗?我还没有在SQL Server CE上创建任何索引。Table2有100,000行。
SELECT
*
FROM
Table1 T1a
WHERE
EXISTS
(
SELECT
NULL
FROM
Table2 T2
JOIN Table1 T1b ON T2.Field1 = T2.Field1
WHERE
T2.SomeID = 12345 AND
T1a.SomeString =
我正在尝试追踪性能问题。我正在对SQL Server Express数据库运行以下SQL查询:
SELECT COUNT(OrderID)
FROM FutureOrderHeader
WHERE ScheduledFulfillmentTime >= {0}
AND ScheduledFulfillmentTime < {1}
AND SplitStatus <> 2
AND Deleted = 0
AND OrderMode = {2}
当我使用Entity Framework运行该命令时,如下所示:
var results = ((
我有一个SQL查询:
SELECT
t.ServerId, t.Id, s.Name
FROM
MyTable as t
JOIN
Server s ON t.ServerId = S.Id
我用的是:
context.Database.SqlQuery<entity>("query_goes_here");
如何配置EF,使其使用查询返回的数据加载实体的Server属性?
基于@octavioccl的回答,我最后做了以下工作:
foreach(var result in results)
{
context.Attach(re
使用Linq2Entities (EF4),我需要查询一个具有Guid属性的实体(称之为id)。我需要查询我的实体是否有任何以给定前缀开头的ids的记录。
本质上,我需要像这样的东西
from items in myEntity
where items.id.ToString().StartsWith(prefix)
// rest of the query
现在,我知道L2EF不支持使用ToString()转换Guid成员。
SqlFunctions.StringConvert()帮助器也不支持它,因为它不接受Guid参数。
而且我不能使用SQL的LIKE,就像在
from items i
我正在使用EF 6.1.3和EF DB2 6.1.0作为数据库。问题是EF没有应用于我的查询的位置。但是,如果我从日志中复制查询,它应该如何工作。
int userId = int.Parse(User.Identity.Name);
//Форматируем данные под таблицу
var tasksQuery = context.Tasks
.Where(t => t.AuthorId == 19)//HERE IS MY SIMPLE WHERE
更新3:根据的说法,EF团队在EF6 alpha 2中已经解决了这个问题。
更新2:我已经创建了一个建议来解决这个问题。投票支持它,。
考虑一个SQL数据库,它只有一个非常简单的表。
CREATE TABLE Main (Id INT PRIMARY KEY)
我用10,000条记录填充表。
WITH Numbers AS
(
SELECT 1 AS Id
UNION ALL
SELECT Id + 1 AS Id FROM Numbers WHERE Id <= 10000
)
INSERT Main (Id)
SELECT Id FROM Numbers
OPTION (
我正在尝试为NHibernate中的一个类生成一个映射,该映射将映射到一个查询,该查询是手写的,以包括一个不在与类映射相关的表中的字段。
该表如下:
Id int
Name varchar(50)
Parent int
类:
int Id {get; set;}
string Name {get; set;}
int ParentId {get; set;}
int ChildCount {get; set;}
映射:
x => x.Id, "Id"
x => x.Name, "Name"
x => x.Parent, "Pa
我想知道在下面的代码中,SAS SQL pass thru中首先执行的是什么:
Connect To OLEDB As MYDB ( %DBConnect( Catalog = MYDB ) ) ;
Create table MYDB_extract as
select put(Parent,$ABC.) as PARENT,
put(PFX,z2.) as PFX,*
From Connection To MYDB
( SELECT
Appointment,Parents,Children,Cats,Dogs
我正在使用以下代码执行LINQ to entity framework (EF)来获取我的表中的记录数:
using (var db = new StackOverflowEntities())
{
var empLevelCount = db.employeeLevels.Count();
}
我使用SQL Server事件探查器捕获了EF向数据库发出的查询。我得到了以下查询:
SELECT
[GroupBy1].[A1] AS [C1]
FROM ( SELECT
COUNT(1) AS [A1]
FROM [dbo].
最近我开始学习实体框架。
我想提出的第一个问题是:
当我们想要使用LINQ来获取EF中的数据时,每个查询都是这样的:
var a = from p in contacts select p.name ;
将转换为如下所示的SQL命令:
select name from contacts
这种转换是否在每次查询时都会重复?
我听说存储过程缓存在数据库中,这个事件是否发生在实体框架中的LINQ查询中?
我的问题终于明白了吗?
很抱歉-我是实体框架的新手,我在其他地方找不到答案。
我有两个表,用户和角色,多到一个关系。
使用SQL获取用户角色名,我会这样做:
SELECT r.Name
FROM Role r
INNER JOIN User u ON u.RoleID = r.ID
WHERE u.UserName = 'someusername'
因此,在EF中,我认为我应该能够做这样的事情:
string role = context.Users.Single(u => u.UserName == username).Role.Name;
这很好,但是当代码运行时,它在SQL服务器上执行两