我有一个在IIS7下运行的EF5 ASP.NET MVC 3(Razor)网站.现在我希望能够根据URL的子域将连接字符串更改为MSSQL数据库,例如foo.mydomain.com应该连接到我的"Foo"数据库,并且bar.mydomain.com应该连接到"Bar"数据库.
显然,DNS记录的设置使它们都指向同一个网站.
实现这一目标的最有效方法是什么?
Linq到XML领域的新手......
我有一个带结果的Linq查询,我想将这些结果转换为XML.我猜测必须有一个相对简单的方法,但我找不到它......
谢谢!
我正在设计专门针对移动浏览器的网络应用程序.虽然我之前在C#/ ASP.NET中编写过网页,但我从来没有专门针对有限的屏幕空间和移动浏览器的其他特性做过任何事情.所以我在这里寻找一些指示:
谢谢!
我的客户是牙科诊所,已经购买了一块练习管理软件.该软件安装在本地服务器上,包括患者数据库,时间表和各种医疗记录.现在,他们希望我为他们编写一些未提供其软件包的实用程序,为此,我需要能够查询此数据库.
我试着给软件制造商(Patterson/EagleSoft)寻求技术支持,很难找到任何理解这项技术的人来回答我的问题.据我所知,他们的软件没有API,可以理解他们不愿意告诉我如何直接以编程方式查询数据库.他们确实有一个交互式查询窗口,但显然这对编写自动查询没有好处.他们所能留下的只是某个地方有一个SQL Server数据库,但连接到它的ODBC驱动程序是SQL Anywhere驱动程序(嗯?).
所以我在服务器上搜索,找不到任何数据库文件.然后我发现安装会创建某种专有虚拟机,只有EagleSoft软件才能看到它.但是虽然他们非常擅长将数据库隔离在一堆混淆中,但他们还是打开了一个ODBC驱动程序,这确实是一个SQL Anywhere连接.
在那个引人入胜且冗长的序言之后,这是我的问题:我可以在此ODBC连接上运行哪些查询来询问DB的结构?如果它是下面的SQL Server DB,我可以使用sysobjects表,但我不完全掌握如何使用SQL Anywhere ODBC连接来连接到MSSQL DB.如果他们误导我并且它下面确实是一个SQL Anywhere数据库,那么为了获得数据库结构需要运行哪些查询?
如果那里有其他人成功实际查询EagleSoft(或任何类似的专有软件包) - 请告诉我你是如何做到的!
MVC新手在这里...我刚刚组建了我的第一个MVC网站,它在开发中工作.现在我使用"Web部署","localhost","默认网站/ MySite"将其发布到我的本地IIS 7.5.未选中"在目标上标记为IIS应用程序"和"保留额外文件..."复选框.
发布成功.所以我打开浏览器并转到http:// localhost/MySite,并收到错误"HTTP错误403.14 - 禁止 - Web服务器配置为不列出此目录的内容."
咦?我认为控制器的整个想法是你不必指定默认页面; 它能为你找到你想要的页面吗?或者我误解了什么?
我有一个特定的计算字段,我经常想在Linq查询的"选择"字段中返回,例如今年的客户订单总数,以及客户的其他人口统计信息.
public class Customer {
public decimal TotalPurchasesThisYear(MyDataContext db) {
return db.Orders.Where(o => o.CustomerID == ID)
.Sum(o => o.OrderTotalAmt);
}
}
public class SomeReport {
public void GetCustomerInfoBySalesperson(long salespersonID) {
using (var db = new MyDataContext()) {
var q = db.Customers.Where(c => c.SalespersonID == salespersonID)
.Select(c => new { c.Name, c.Address, ThisYearPurchases = c.TotalPurchasesThisYear(db) })
.ToList();
// etc..
}
}
}
Run Code Online (Sandbox Code Playgroud)
显然,这不起作用,因为TotalPurchasesThisYear没有SQL翻译.但其中的所有内容都有SQL翻译.我不想直接在查询中包含该代码,因为我在很多地方进行相同的计算.我的直觉告诉我这应该用a来完成,Expression但是我已经玩过了,并且无法找到正确的语法.
帮忙,有人吗?谢谢!
我是Linq的忠实粉丝,我一直非常享受表达树等的力量.但是我发现每当我试图对我的疑问过于聪明时,我在框架中遇到了某些限制:查询可能需要很短的时间内数据库(如通过性能分析器)上运行,结果拿年龄兑现.当发生这种情况时,我知道我太过花哨了,我开始将查询分解成更小,更小的块 - 所以我有一个解决方案,尽管它可能并不总是最优的.
但我想明白:
编辑:根据评论中的要求,这是我在几秒钟内测量在SQL Server上运行的查询示例,但花了将近2分钟来实现.我不会尝试在上下文中解释所有内容; 它就在这里,您可以查看构造并查看我正在谈论的示例:
Expression<Func<Staff, TeacherInfo>> teacherInfo =
st => new TeacherInfo
{
ID = st.ID,
Name = st.FirstName + " " + st.LastName,
Email = st.Email,
Phone = st.TelMobile,
};
var step1 =
currentReportCards.AsExpandable()
.GroupJoin(db.ScholarReportCards,
current =>
new { current.ScholarID, current.AcademicTerm.AcademicYearID },
past => new { past.ScholarID, past.AcademicTerm.AcademicYearID },
(current, past) => new
{
Current = current,
PastCards =
past.Where(
rc =>
rc.AcademicTerm.StartDate <
current.AcademicTerm.StartDate &&
rc.AcademicTerm.Grade == current.AcademicTerm.Grade …Run Code Online (Sandbox Code Playgroud) 不知道我的设置发生了什么,但是最近,当我用新字段或具有特定表(>的外键的新表)更新数据库时Person,我的数据库刷新会获取新字段,但不识别FK与...的关系Person.大多数其他表的外键工作正常.
可能缺少什么设置?
也许一个线索:Person充当其他几个表的基本类型,例如Manager,Customer所有表都具有名称,出生日期,性别等的基本特征,而后代表具有也作为外键的主键.Person.与子代表的FK关系也未被识别.
我OperationCanceledException在API日志中发现了很多。我认为这与高负载情况有关,但这可能只是因为在较高的负载下会有更多的调用,因此也有更多的异常。异常的堆栈跟踪没有到达任何控制器代码。它通过我的一些OWIN中间件,但在到达任何控制器之前就死了。而且,对不同API端点的许多调用都是相同的堆栈跟踪:
System.OperationCanceledException: The operation was canceled.
at System.Threading.CancellationToken.ThrowOperationCanceledException()
at System.Net.Http.HttpContentExtensions.<ReadAsAsyncCore>d__0`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.ModelBinding.FormatterParameterBinding.<ExecuteBindingAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Web.Http.Controllers.HttpActionBinding.<ExecuteBindingAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext() …Run Code Online (Sandbox Code Playgroud) c# ×7
linq ×3
asp.net-mvc ×2
sql-server ×2
asp.net ×1
foreign-keys ×1
iis-7 ×1
iis-7.5 ×1
indexing ×1
linq-to-xml ×1
mobile ×1
odbc ×1
owin ×1
sqlanywhere ×1