我正在寻找一个包含大量LINQ to SQL查询的应用程序.这基本上是带有MVC的SilverLight应用程序.一些数据加载需要相当多的时间.我想知道在SQL服务器上触发的确切查询.有没有办法将生成的T-SQL语句存储到某种日志文件中?
请建议一些其他可能的方法.
我正在尝试将文件存储在SQL Server数据库中,并使用ASP.NET MVC 3和C#中的LINQ to SQL.当我尝试将列的数据类型设置为byte []时,它表示这是一种无效的数据类型.使用vrabinary(MAX)数据类型似乎是合乎逻辑的事情.
目标是将PDF文件存储在用户选择使用HTTP文件上载器上载的数据库中.在分配LINQ成员变量期间发生错误,该变量引用要存储文件的列.
错误3无法将类型'System.Web.HttpPostedFileBase'隐式转换为'System.Data.Linq.Binary'C:\ Users\Aaron Patten\Documents\Visual Studio 2010\Projects\MyApp\MyApp\Controllers\MyController.cs 66 31 MyApp的
我没有发现其他人遇到这个问题的方式很多,所以我认为必须有一些我想念的东西,对于任何人来说都是太基础了.
我的控制器:
public ActionResult UploadPDF()
{
List<ViewDataUploadFilesResult> r = new List<ViewDataUploadFilesResult>();
HttpPostedFileBase hpf;// = Request.Files[file] as HttpPostedFileBase;
foreach (string file in Request.Files)
{
hpf = Request.Files[file] as HttpPostedFileBase;
if (hpf.ContentLength == 0)
continue;
string savedFileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "images\\" + Path.GetFileName(hpf.FileName));
hpf.SaveAs(savedFileName);
r.Add(new ViewDataUploadFilesResult()
{
Name = savedFileName,
Length = hpf.ContentLength
});
}
MyApp.Models.MyAppDataContext db = new MyApp.Models.MyAppDataContext();
MyApp.Models.PDFFile myPDFFile = …Run Code Online (Sandbox Code Playgroud) 我有一个函数,它采用我想转换sql的lambda表达式.
<T> List Search <T> (Expression <Func <T, bool>> criteria) {
/ / The idea is to create a SQL statement, based on criteria
}
Run Code Online (Sandbox Code Playgroud)
我没有使用DataContext.请不要给出答案:
list.Where return (criteria.Compile ()). ToList <TClass> ();
Run Code Online (Sandbox Code Playgroud)
例:
<Contact> List Search <Contact> (c => c.id == 1 && new == c.birthday DateTime (2000,1,1))
Run Code Online (Sandbox Code Playgroud)
表达树是无用的,我试过,我发现它是不可能的.
如果你不能回应,请.我更喜欢对愚蠢的答案零回应甚至没有更接近解决方案.
对不起英语,我正在学习:)
谢谢和最好的问候.
下面的代码给出以下错误:
"表达式树可能不包含动态操作"
var x = db.Data.Select(x => new { name = TitleHT[x.TitleId], x.TitleId }).GroupBy(x => x.name);
Run Code Online (Sandbox Code Playgroud)
TitleHT是Dictionary<int, string>我可以查找TitleId的字符串表示.因此,我试图在查询中为此字符串文字指定名称.TitleId的类型是int?不确定这是否重要.
我有一个与SQL数据库连接的Silverlight应用程序.它通过对WCF服务提供服务引用来实现此目的.此WCF服务包含DataContext对象(由SQLMetal.exe生成)并访问数据库.Silverlight应用程序可以联系服务器以获取信息,并可以向其提交更改等.
现在,一些表包含二进制数据(在这种情况下为图像).这可能导致其中一个表的传输相对较慢.
如果可能的话,我想要的是Silveright应用程序中的进度条,它可以让用户了解传输的进度.
这可能吗?如何才能做到这一点?
我创建了一个函数来比较我的项目的价格.这是我的功能:
public static decimal ComparePrice(decimal Price, decimal WebsitePrice)
{
decimal ZERO_PRICE = 0.00000M;
if(Price == ZERO_PRICE && WebsitePrice > ZERO_PRICE){
return WebsitePrice;
}else if(Price == ZERO_PRICE && WebsitePrice == ZERO_PRICE){
return "";
}else{
return Price;
}
}
Run Code Online (Sandbox Code Playgroud)
如果两者(价格和网站价格)等于0.00,那么它将返回空字符串,我知道当函数设置为十进制类型时不可能返回字符串,但我不知道我应该怎么做.有人可以帮忙吗?谢谢.
我对使用数据库第一种方法时Linq-to-SQL和Entity Framework之间的差异感到困惑,因为我找不到任何明显的差异.
在我使用Linq-to-SQL的情况下,我曾经创建表,然后我使用Linq-to-SQL创建表示表的类,现在当我切换到Entity Framework时,我仍然遵循相同的步骤(创建数据库表,然后使用EF创建关联的类).
我以相同的方式与这些类进行交互,例如,我曾经使用相同的语法和方法查询User类,但有一次User使用Linq-to-SQL创建类,而另一次使用Linq-to-SQL创建类时EF,那么区别在哪里?
public IQueryable<User> findstudents(string term)
{
return from student in entities1.Users
where student.UserID.Contains(term)
select student;
}
Run Code Online (Sandbox Code Playgroud)
第二个问题,如果我使用EF将表映射到类,是否仍然可以在同一个应用程序中使用Linq-to-SQL来查询EF类?
我相信这对你来说可能是另一个简单的LINQ大师.
我有一个表格,其中包含由"#"分隔的字符串.在使用LINQ选择字段后,如何将每个字符串拆分为不同的列表?我的字符串列表如下所示:
#A#B#C#D#G#F
Run Code Online (Sandbox Code Playgroud)
我用一个简单的LINQ查询来访问它:
from x in Special_texts
where x.Name.Equals("ExceptionList")
select x.Content
Run Code Online (Sandbox Code Playgroud)
最后,我的列表应包含:
A
B
C
D
G
F
Run Code Online (Sandbox Code Playgroud)
提前致谢.
这是我的Linq查询.这很好用.问题是如果表中没有任何姓氏,则结果中不显示该行.我想如果任何人没有姓,那么它将是User_Name = First Name +"".
var ShowFiles = from cm in db.Contact_Masters
join ta in db.Topic_Accesses on cm.Contact_ID equals ta.Contact_ID
join RelMess in db.Rel_Topics_Messages on ta.Topic_ID equals RelMess.Topic_ID
join Messages in db.Messages on RelMess.Message_ID equals Messages.Message_ID
join Files in db.Files on Messages.Message_ID equals Files.Message_ID
join FileType in db.Lkup_Files_Extensions on Files.TypeID equals FileType.TypeID
join FileVersion in db.File_Versions on Files.File_ID equals FileVersion.File_ID
join pcf in db.Contact_Personals on Messages.Contact_ID equals pcf.Contact_ID
where pcf.Personal_Type == new Guid("30102333-2104-40D7-8913-DC9048225D12") // Personal_Type = First Name ID
join …Run Code Online (Sandbox Code Playgroud) 我从两个不同的存储库中检索数据:
List<F> allFs = fRepository.GetFs().ToList();
List<E> allEs = eRepository.GetEs().ToList();
Run Code Online (Sandbox Code Playgroud)
现在我需要加入他们,所以我做了以下事情:
var EFs = from c in allFs.AsQueryable()
join e in allEs on c.SerialNumber equals e.FSerialNumber
where e.Year == Convert.ToInt32(billingYear) &&
e.Month == Convert.ToInt32(billingMonth)
select new EReport
{
FSerialNumber = c.SerialNumber,
FName = c.Name,
IntCustID = Convert.ToInt32(e.IntCustID),
TotalECases = 0,
TotalPrice = "$0"
};
Run Code Online (Sandbox Code Playgroud)
如何使这个LINQ查询更好,以便它运行得更快?我将不胜感激任何建议.
谢谢
linq-to-sql ×10
c# ×6
linq ×6
asp.net ×2
.net ×1
asp.net-mvc ×1
logging ×1
orm ×1
silverlight ×1
split ×1
sql ×1
wcf ×1