小编Ste*_*ols的帖子

在ASP.NET MVC中设置备用控制器文件夹位置

我们可以使用HTML视图的默认文件夹约定的MVC应用程序,但是我们想要设置备用"服务"文件夹,其中控制器仅用于返回xml或json的Web服务.

因此路由"/ Services/Tasks/List"将路由到"/Services/TaskService.cs",而"/ Tasks/List"将路由到标准"/Controllers/TaskController.cs"

我们希望将服务控制器与视图控制器分开.我们认为区域或使用其他项目不会起作用.什么是最好的方法来解决这个问题?

asp.net-mvc asp.net-mvc-routing asp.net-mvc-controller

12
推荐指数
1
解决办法
1万
查看次数

实体框架4 - 获取更新/插入的生成SQL

使用EF4,是否可以获取生成的更新/插入SQL而不是执行它......就像您可以在运行之前查看查询SQL一样.

原因是,我有一组执行SQL命令的辅助函数.例如...

Decrement<Category>("ProductCount", categoryID);
SetNull<Product>("CategoryID", productID);
Run Code Online (Sandbox Code Playgroud)

哪个产生......

UPDATE Categories 
SET ProductCount = ProductCount - 1 
WHERE CategoryID = @CategoryID; 

UPDATE Products 
SET CategoryID = NULL 
WHERE CategoryID = @ProductID;
Run Code Online (Sandbox Code Playgroud)

我通常在每个操作中运行几个命令,因此在每个辅助函数调用时,都会生成并存储SQL.当我调用SaveChanges()时,所有命令都是一次运行的.

唯一的问题是EF在幕后单独运行命令,然后我立即运行其他命令.将所有内容作为单个命令运行是理想的.

entity-framework entity-framework-4

10
推荐指数
1
解决办法
4928
查看次数

在SQL Server中自动更新冗余/非规范化数据

在我的数据库设计中使用高级冗余非规范化数据来提高性能.我经常会存储通常需要加入或计算的数据.例如,如果我有一个User表和一个Task表,我会在每个Task记录中冗余地存储UsernameUserDisplayName.另一个例子是存储聚合,例如将TaskCount存储在User表中.

  • 用户
    • 用户身份
    • 用户名
    • UserDisplayName
    • TaskCount
  • 任务
    • 的TaskID
    • 任务名称
    • 用户身份
    • 用户名
    • UserDisplayName

这非常适合性能,因为应用程序具有比插入,更新或删除操作更多的读取,并且因为某些值(如用户名)很少更改.然而,最大的缺点是必须通过应用程序代码或触发器强制执行完整性.更新可能会非常麻烦.

我的问题是这可以在SQL Server 2005/2010中自动完成...也许通过持久/永久视图.有人会推荐另一种可能的解决方案或技术 我听说基于文档的数据库(如CouchDB和MongoDB)可以更有效地处理非规范化数据.

sql-server sql-server-2005 denormalization

9
推荐指数
1
解决办法
2813
查看次数

使用C#将Lambda表达式转换为SQL UPDATE语句

库或代码是否可用于从lambda表达式创建SQL Update语句?我们希望使用强类型的lambda表达式来进行更新,而不是事先调用对象或使用字符串.我在考虑这样的事情.

Update<Task>(
    u => u.UserID = 1, u.TaskCount += 1, //Update
    w => w.Priority != "High" && (w.Status != "Complete" || w.Status == null) //Where
);
Run Code Online (Sandbox Code Playgroud)

哪个会粗略地翻译成..

UPDATE Tasks SET UserID = 1, TaskCount = TaskCount + 1
WHERE Priority <> "High" AND (Status <> "Complete" OR Status = null)
Run Code Online (Sandbox Code Playgroud)

我应该提到我们目前正在使用Entity Framework和Postgres.

c# lambda entity-framework

4
推荐指数
2
解决办法
9732
查看次数