试图从当前周内的数据库获取所有日期
我有email1DueDate,email2DueDate,email3DueDate
我想知道他们是否应该在本周内发送
如果我使用实体框架进行连接,我怎样才能在sql语言中使用sql查询?我从这篇文章中了解到,ObjectContext.ExecuteStoreQuery无济于事,因为它只适用于某些查询(不是1:1到sql语言).
提到的另一个选项是使用ObjectContext.Connection并从那里编写"经典"ADO.NET代码,但我无法弄清楚如何.
有人可以写一个非常简单的代码示例如何执行简单的查询,如
select MAX(customer_id) from Customers
Run Code Online (Sandbox Code Playgroud)
与实体框架?我知道Linq-To-Sql存在,但我更喜欢使用sql语言,它看起来更简单,我对它更熟悉.
我有一张桌子如下图所示.它有固定和储蓄类型的帐户.我需要更新用户1的所有帐户的状态.该用户有10000个帐户.本质上,逻辑将如以下SQL存储过程脚本中所示.该脚本执行时间不到1秒(83毫秒).
但是当我使用LINQ to SQL将其转换为ORM时,它需要超过3分钟(204814毫秒).它至少慢了240,000%.
LINQ to SQL(或其他ORM)中是否存在有助于克服性能损失的模式?
有什么能迫使它在一次数据库中进行更新?
注意:我知道从LINQ调用存储过程.我不认为这是ORM而不是我的选择.

手动存储过程脚本
DECLARE @UserID INT
DECLARE @StatusForFixed VARCHAR(50)
DECLARE @StatusForSavings VARCHAR(50)
SET @UserID = 1
SET @StatusForFixed = 'FrozenFA11'
SET @StatusForSavings = 'FrozenSB22'
UPDATE BankAccount
SET Status =
CASE
WHEN BankAccount.AccountType='Fixed' THEN @StatusForFixed
WHEN BankAccount.AccountType='Savings' THEN @StatusForSavings
END
WHERE AccountOwnerID=@UserID
Run Code Online (Sandbox Code Playgroud)
LINQ生成的代码示例
Note: This type of statements happen 10000 times
UPDATE [dbo].[BankAccount]
SET [Status] = @p3
WHERE [BankAccountID] = @p0
-- @p0: Input Int (Size = -1; …Run Code Online (Sandbox Code Playgroud) 我正在从此Linq To SQL查询中获取客户类别database.CustCategory将已经定义.这是查询.
public IList<string> GetAccountType()
{
using (var db = new DataClasses1DataContext())
{
var acctype = db.mem_types.Select(account=>account.CustCategory).Distinct().ToList();
if (acctype != null)
{
return acctype;
}
}
}
Run Code Online (Sandbox Code Playgroud)
目前我收到一个错误,Not all code paths return a value.如果我总是确定数据库中有值,那么我是否需要检查null,如果我需要检查,null那我该如何处理.谁能帮我这个.欢迎任何建议.
我需要在Payment表中插入一条记录.我发现了两种方法
两者有什么区别?什么时候用?
public void InsertEntity(DBML_Project.Payment payment)
{
//Insert the entity
MyDataContext.GetTable<DBML_Project.Payment>().InsertOnSubmit(payment);
}
public void InsertPayment(IPayment payment)
{
this.AddObject(payment.GetType().Name, payment);
}
Run Code Online (Sandbox Code Playgroud) 我正在写一个linq-to-sql查询,我正在从表中加载一个ID(bigint数据库中的a long和我的代码中的一个),如下所示:
var SomeQuery = (from x in ...
select x.ID).SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)
当我得到结果时,我会使用SingleOrDefault以防返回为空.这是否意味着如果结果为空,SomeQuery变量将为0或null?
谢谢.
根据本教程,他有'image'数据类型来存储文件字节.然后,在下载操作时,他只是获取该图像数据类型值byte[],但我的解决方案中存在问题.
我正在使用SQL 2008,LinqToSQL.
行截图
C#截图

错误信息

PS这是我第一次使用"将文件保存到数据库".
我正在尝试更新Tag表中的标签列表,如下所示:
List<Tag> tagList = GetUnitTagList(unitId);
foreach (Tag tag in tagList)
{
tag.count = tag.count - 1;
}
db.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)
这是GetUnitTagList()方法:
public static List<Tag> GetUnitTagList(int unitId)
{
DataClassesDataContext db = new DataClassesDataContext();
var tags = from x in db.UnitTags where x.UnitID == unitId select x.Tag;
return tags.ToList();
}
Run Code Online (Sandbox Code Playgroud)
但我试图更新的价值没有得到更新.
但是,以下代码可以正常工作:
var tags = from x in db.UnitTags where x.UnitID == unitId select x.Tag;
foreach (Tag tag in tags)
{
tag.count = tag.count - 1;
}
db.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)
看起来如果我得到一个Tag对象的集合我们一个方法返回然后我无法更新记录.我尝试调试,没有异常!
那么,为什么更新记录的第一种方式不起作用,而第二种方式它没有问题呢?
我正在尝试进行某种轮询以侦听数据库中发生的更新.到目前为止,我正在考虑获取数据库(或几个表)的MD5哈希(或任何类型或哈希),将其存储在变量中,并运行一遍又一遍地循环此过程的线程,将其与最后一个结果进行比较.如果不同,则将一个按钮设置为Enabled,这会分组数据库加载功能.
这是一个很好的方法吗?如果没有,为什么?如果有,怎么样?
我不知道如何实现的部分是在数据库的一侧获取MD5哈希.我可以很容易地获得所有数据然后得到它的md5哈希,所有客户端,但是......是的.
我正在使用LINQ to SQL,但我担心我只能使用上下文来运行Raw查询.这是在WinForms,.NET 3.5(不是它应该重要但是......).
非常感谢任何提示.谢谢!
我正在使用.Net Framework 4,mvc 3和实体框架(最新稳定版)
在索引页面上,我希望能够过滤每一列.LINQ使用distinct()方法为每列检索过滤器值.我没有找到一种很好的方法来重用为每列检索这些值的方法 - 它们基本相同,唯一区分它们的是使用的列名,因此使用一种方法而不是几种方法会很好.
public List<string> GetLevels()
{
return _db.Logs.Select(l => l.Level).Distinct().ToList();
}
public List<string> GetOrders()
{
return _db.Logs.Select(l => l.Order).Distinct().ToList();
}
Run Code Online (Sandbox Code Playgroud)
如何使用我想从中检索数据的列名注入lambda表达式?像这样的东西:
public List<string> GetFilterValues(string columName)
{
return _db.Logs.Select(l => l.columnName).Distinct.ToList();
}
Run Code Online (Sandbox Code Playgroud) linq-to-sql ×10
c# ×9
.net ×2
sql-server ×2
ado.net ×1
asp.net ×1
asp.net-mvc ×1
bytearray ×1
linq ×1
refactoring ×1
sql ×1