小编Ale*_*lex的帖子

C#.NET 3.5:Expression <>用于什么?

Expression <>究竟在C#中使用了什么?是否有任何情况下您将Expression <>自己实例化为对象?如果是这样,请举个例子!

谢谢!

c# expression

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

ASP.NET会话状态服务器与InProc会话

运行会话状态服务器而不是InProc的开销性能损失是多少?这很重要吗?我知道您可以使用状态服务器重新启动w3wp并保留所有会话状态 - 这是唯一优于InProc的优势吗?

asp.net session session-state-server

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

将IQueryable <T> Where()扩展为OR而不是AND关系

我正在使用我自己的IQueryable <>扩展方法来创建可链接查询,例如FindAll().FindInZip(12345).NameStartsWith("XYZ").OrderByHowIWantIt()等然后在延迟执行时创建基于我的单个查询扩展方法链.

但问题是,扩展链中的所有位置(FindXYZ,FindInZip等)将始终组合为AND,这意味着我无法做到这样的事情:

FindAll().FirstNameStartsWith("X").OrLastNameStartsWith("Z")因为我不知道如何在一个单独的Where方法中注入OR.

知道如何解决这个问题吗?


额外; 到目前为止,我理解如何将表达式链接为或者如果我将它们包装起来(例如CompileAsOr(FirstNameStartsWith("A").LastNameStartsWith("Z").OrderBy(..))

我想要做的虽然稍微复杂一点(并且PredicateBuilder在这里没有帮助......)因为我希望以后的IQueryable能够基本上访问先前建立的Where条件,而不必将它们包装起来以创建Or之间他们.

当每个扩展方法返回IQueryable <>时,我理解它应该知道某个地方的查询条件的当前状态,这使我相信应该有一些自动化的方法或在所有先前的Where条件中创建Or而不必包装你想要什么或者.

c# iqueryable

8
推荐指数
2
解决办法
4962
查看次数

如何将数据放入母版页?

如何将ASP.NET MVC中的强类型对象放入母版页?

你有一个ViewModelBase包含母版页信息的类,并为每个视图模型继承它,还是有更好的方法?

c# asp.net-mvc master-pages

8
推荐指数
1
解决办法
2409
查看次数

ASP.NET MVC中<%#和<%=有什么区别?

ASPX内联代码中的<%#和<%=有什么区别?

c# asp.net-mvc

8
推荐指数
1
解决办法
400
查看次数

在字符串中实现重复字符删除的最快方法(C#)

在C#中,检测String中重复字符并删除它们的最快方法是什么(删除包括重复字符的第一个实例)?

示例输入: nbHHkRvrXbvkn

示例输出: RrX

.net c# string

8
推荐指数
2
解决办法
7288
查看次数

粒度数据库记录访问权限(例如,组"X"和个人"Smith"可以查看记录Z)

我有记录(联系人,地址等),以下任何一个都可以访问(包括组合,例如2组和4个人):

  • 每个人
  • 多个小组/部门的成员
  • 单个团体/部门的成员
  • 多个人
  • 单身个人

实现这一目标的数据库结构是什么?基本上在我的应用程序中,我需要能够限制用户XYZ何时登录,以便仅向他显示作为个人,组成员"可见"的记录,或者因为它们对每个人都可见.

基本上我正在寻找一种有效存储这些关系的方法.它应该很快,因为每当有人看到任何东西我都会关注这些关系.

我真的很感激有关如何做到这一点的一些提示!

谢谢!

编辑:我正在使用SQL Server 2008网络版.

database-design access-control

8
推荐指数
1
解决办法
629
查看次数

LINQ-to-SQL编译的查询问题(作为未编译的查询)

我有C#扩展方法IQueryable,例如FindNewCustomers(),FindCustomersRegisteredAfter(int year)依此类推,我用它来链接查询一起用于LINQ to SQL.

现在我的问题:我想创建编译查询,例如:

 private static Func<MyDataContext, SearchInfo, IQueryable<Customer>>
        CQFindAll = 
            CompiledQuery.Compile((MyDataContext dc, SearchInfo info) =>
                dc.Contacts.Select(c => c).FindCustomersRegisteredAfter(info.RegYear)
                           .OrderBy(info.OrderInfo)
                           .Skip(info.SkipCount)
                           .Take(info.PageSize));
Run Code Online (Sandbox Code Playgroud)

FindCustomersRegisteredAfter(int year)方法是一种采用IQueryable并返回相同的扩展方法.该OrderBy方法也是一种扩展方法(System.Linq.Dynamic),它根据字符串创建动态表达式(例如"FirstName ASC"将对字段FirstName进行排序).Skip并且Take是内置方法.

上面(不是编译查询,但常规查询)工作完美.一旦我把它放在编译的查询中,我就会遇到以下错误:

方法 'System.Linq.IQueryable`1 [Domain.Customer] FindCustomersRegisteredAfter [客户](System.Linq.IQueryable`1 [Domain.Customer],Int32)将' 没有支持转换为SQL.

再次,如果查询是非编译的,只是常规的LINQ查询,这将完美地工作.只有在CompiledQuery.Compile()内部出现错误.

救命??!

编辑:如果我通过var query =(...)创建查询的方式与CompiledQuery.Compile内部相同,那么这就是生成的SQL:

SELECT [t1].[Id], [t1].[FirstName], [t1].[LastName], 
       [t1].[RegYear], [t1].[DeletedOn]
FROM (
 SELECT ROW_NUMBER() OVER (ORDER BY [t0].[LastName]) AS [ROW_NUMBER], 
        [t0].[Id], [t0].[FirstName], [t0].[LastName], [t0].[RegYear], …
Run Code Online (Sandbox Code Playgroud)

c# linq expression-trees linq-to-sql compiled-query

8
推荐指数
1
解决办法
2157
查看次数

如果ASP.NET应用程序在本地运行,请查看Global.Asax - Application_Start

HttpContext.Current.Request.IsLocal在Global.Asax/Application_Start中不可用(请求在上下文中不可用).

我怎样才能安全地确定我的ASP.NET MVC应用程序是否在本地启动?

这是有条件地重写我的web.config(取决于应用程序是部署(远程)还是测试(本地)).

谢谢!

c# asp.net asp.net-mvc localhost global-asax

8
推荐指数
1
解决办法
2430
查看次数

为什么10675199.02:48:05.4775807 TimeSpan CompilationSection的最大值?

我正在查看System.Web.Configuration.CompilationSection的元数据,并注意到该属性的以下属性TimeSpan BatchTimeout:

[TimeSpanValidator(MinValueString = "00:00:00", 
 MaxValueString = "10675199.02:48:05.4775807")]
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么这是允许的最大值?TimeSpan本身有一个上限,为什么会有另一个值验证,为什么这个数字?

.net c# validation timespan

8
推荐指数
2
解决办法
7523
查看次数