早在2008年底,就LINQ to SQL的未来发生了很多争论.许多人认为微软在.NET 4.0中对实体框架的投资是LINQ to SQL没有未来的标志.我想我会在做出自己的决定之前等待,因为人们不同意.
快进18个月,我有供应商提供依赖LINQ to SQL的解决方案,我个人试了一下,非常喜欢使用它.我想这是留下来的.
但是我正在读一本新书(Ben Watson的C#4.0 How-To)和第21章(LINQ),他认为它"或多或少被微软推荐"并建议使用LINQ to Entity Framework.
我的问题是LINQ to SQL是否正式被弃用和/或权威实体(Microsoft,Scott Gu等)是否正式建议使用LINQ to Entities而不是LINQ to SQL.
在SQL Server(2000/2005/2008)中确定字段值是否为整数的最佳方法是什么?
对于不太可能转换为整数的各种格式,IsNumeric返回true.例子包括'15,000'和'15 .1'.
您可以使用类似的声明,但这似乎只适用于具有预定位数的字段...
select * where zipcode like '[0-9][0-9][0-9][0-9][0-9]'
Run Code Online (Sandbox Code Playgroud)
我可以编写一个用户定义的函数,尝试将varchar参数转换为try/catch块中的int,但我正在检查社区是否有人遇到任何有用的方法来实现这个目标 - 最好是可以在SQL语句的where子句中使用,而不创建其他对象.
如果我有一个尺寸为sizeX,sizeY的jpeg地图
和地图上的一些校准点(X,Y,Lon,Lat)
使用给定的经度/纬度对计算地图中相应XY点的算法是什么?
我正在研究我的第一个真正的ASP.NET MVC项目,我注意到我一直在工作的控制器变得相当大.这似乎违背了保持控制器薄的最佳做法.
我已经做好了将业务逻辑从控制器中删除的工作.我为此使用了一个单独的层.每个操作主要调用业务层中的方法,并根据模型状态是否有效来协调最终结果.
也就是说,控制器有很多动作方法.直觉上,我想将控制器分解为子控制器,但我没有看到一个简单的方法.我可以简单地将控制器分解为单独的控制器,但是我松开了层次结构,感觉有点脏.
是否有必要使用大量精简操作重构控制器?如果是这样,最好的方法是什么?
自Atlas时代以来,我们的团队一直在使用微软的AJAX工具包.在一个有点天真的,我们错过了jQuery /原型现象,直到一两个月回来.到目前为止,我们始终将Ajax的概念与Microsoft的工具包相关联.
在阅读jQuery时,我看到了Ajax的一个全新的一面,我只是模糊地意识到了这一点.也就是说,您可以使用JavaScript(或JS库)与服务器通信,而无需使用专门的控件.乍一看,似乎这提供了更好的浏览器兼容性和更少的膨胀.我当然对此感兴趣.
我向社区提出的问题:
当使用ASP.NET并且需要在没有回发的情况下与服务器通信时,如何决定使用AJAX Toolkit中的控件而不是使用jQuery之类的东西?是否有理由同时使用两者?
我有一个带有POCO域模型和NHibernate存储库层的ASP.NET MVC 2应用程序.我的域模型不知道我的viewmodels所以我使用automapper从viewmodel转到实体,反之亦然.
当我将WCF引入我的项目(一个迟到的要求)时,我开始不得不处理断开连接的对象.也就是说,我使用NHibernate从数据库中检索实体,并且一旦该实体被序列化,它就会断开连接并且每个子集合都被加载,无论我是否计划使用它,这意味着我正在做很多不必要的数据库工作.
在阅读完本文后,我发现强烈建议您不要在域项目之外公开您的实体,而应该使用DTO.
我看到了这个的原因,但我无法弄清楚如何实现它.
我是否从ASP.NET MVC中的viewmodel映射到DTO,通过服务层发送DTO,并从DTO映射到服务层中的实体?我应该在哪里定义我的DTO?
以下代码可以在我们域上的各种计算机上正常运行.
var context = new PrincipalContext(ContextType.Domain);
var principal = UserPrincipal.FindByIdentity(context, @"domain\username")
Run Code Online (Sandbox Code Playgroud)
但是,如果我在不在域上的计算机上运行此类似的代码,它可以工作,但FindByIdentity行需要2秒以上.
var context = new PrincipalContext(ContextType.Machine);
var principal = UserPrincipal.FindByIdentity(context, @"machinename\username")
Run Code Online (Sandbox Code Playgroud)
通过向PrincipalContext构造函数和/或FindByIdentity方法提供特殊参数,可以解决这种性能差异吗?IIS或Windows中是否有可以调整的设置?
至少,任何人都可以告诉我为什么在第二种情况下它可能会变慢?
该代码从Windows Server 2008 R2上的IIS 7.5(集成管道)中托管的ASP.NET MVC 3应用程序运行.
我正在构建一个动态的部分加载asp.net页面,我想用jQuery来调用页面方法或web服务来检索内容HTML.
页面方法或Web服务,性能明智,哪种方式更好?
如果我调用页面方法,在服务器端,页面是否经历了整个生命周期?
是否有任何好的资源可以帮助我更好地理解页面方法?
我目前正在研究如何将单元工作模式添加到使用NHibernate的现有ASP.NET MVC应用程序中.我在各种实现中看到了很多变化,我无法确定在给定情况下哪种方法最有效.
为了提供帮助,我想我会要求Stack Overflow社区列出他们在ASP.NET MVC应用程序中实现工作单元模式的最佳方式.
也许您在创建控制器时使用IoC来实例化NHibernate会话,然后将其传递给存储库.或者您可能创建一个工作类/接口单元.在描述您的方法后,请不要犹豫链接到其他资源.
此外,请务必列出与您的方法相关的任何利弊.
好吧,这一定是一些愚蠢的东西,我做错了,但我找不到它.
MVC行动:
[AcceptVerbs(HttpVerbs.Post)]
public virtual ActionResult Create(BatchCreateViewModel createModel)
{
return RedirectToRoute(MVC.Home.Display());
}
Run Code Online (Sandbox Code Playgroud)
BatchCreateViewModel:
public class BatchCreateViewModel
{
bool searchAVM;
bool searchBPO;
bool searchAppraisal;
int transactionAge;
string Description;
string uploadfile;
}
Run Code Online (Sandbox Code Playgroud)
View页面上有一些名为"searchAVM","searchBPO","searchAppraisal",(复选框)"transactionAge"(一组带整数值的单选按钮)和"description"(文本框)的控件
当我在"Create"的条目处中断时,createModel就在那里,但是具有所有默认值(对于字符串为null,对于布尔值为false,对于int为0).如果我检查Request.Form,值就在那里,但它们只是没有进入模型.
我究竟做错了什么?
(这是MVC 2,框架4)
asp.net-mvc ×4
ajax ×2
asp.net ×2
jquery ×2
.net ×1
actionmethod ×1
coordinates ×1
dto ×1
geocoding ×1
gps ×1
iis-7 ×1
javascript ×1
linq ×1
linq-to-sql ×1
orm ×1
pagemethods ×1
poco ×1
regex ×1
repository ×1
sql ×1
sql-server ×1
t-sql ×1
unit-of-work ×1
wcf ×1
web-services ×1