我找到了一个处理LINQ排序和分页的扩展方法.虽然这很好用,但我试图看看是否有其他方法可以使用它.
目前,扩展方法的代码如下:
public static IQueryable<T> Page<T, TResult>(
this IQueryable<T> obj,
int page,
int pageSize,
System.Linq.Expressions.Expression<Func<T, TResult>> keySelector,
bool asc,
out int rowsCount)
{
rowsCount = obj.Count();
int innerRows = (page - 1) * pageSize;
if (asc)
return obj.OrderBy(keySelector).Skip(innerRows).Take(pageSize).AsQueryable();
else
return obj.OrderByDescending(keySelector).Skip(innerRows).Take(pageSize).AsQueryable();
}
Run Code Online (Sandbox Code Playgroud)
该方法接受一个基于类型的表达式.
在我的经销商类中,我有一个方法GetDealers,它基本上调用它,即
db.User.Page(1, 2, p => p.User.UserProperty.Name, true, out rowCount)
Run Code Online (Sandbox Code Playgroud)
从事物的呈现方面来看,我不知道或可以访问上述表达,例如
ListView1.DataSource = users.GetDealers("SortColumn", pageNo, pageSize, out rowCount, bool asc);
ListView1.DataBind();
Run Code Online (Sandbox Code Playgroud)
唯一的方法是在我的GetDealers方法中有一个switch语句,然后转换为表达式.有没有办法绕过这个,或者这个方法好吗?
我想知道是否有人有任何插件或capistrano配方,通过在部署时构建所有页面缓存的html或在部署发生之前本地"预热"rails应用程序的页面缓存.
我有一些大多数静态网站没有太大变化,如果已经编写了html,它会运行得更快,而不是要求一个访问者访问该网站.
而不是自己创建(似乎很容易,但它优先级低)它是否已经存在?
根据文档,在MySQL中,Max()和Min()聚合函数接受DISTINCT关键字:
DISTINCT关键字可用于查找expr的不同值的最大值,但是,这会产生与省略DISTINCT相同的结果.
也许我错过了什么,但这怎么可能有用呢?
更新:
与几个答案相反,MySQL 不支持每个聚合函数.
avg(),count(),min(),max(),group_concat()和sum()支持Distinct.std(),variance(),其他几个统计函数或按位聚合函数不支持它.
我在我的项目中添加了一个新的ADO.Net实体数据模型,并使用更新向导将表添加到模型中.五个选定的表被添加到设计图面.另外两个表不会添加.我在向导中选择它们并单击"完成",但它们从未出现在设计图面上.
这是一个错误,还是有些情况下表格无法添加到模型中(按设计)?
更新:XML(*.edmx)揭示了问题.
<!--Errors Found During Generation:
warning 6013: The table/view 'FooBar.dbo.Roles' does not
have a primary key defined and no valid primary key could be inferred.
This table/view has been excluded. To use the entity you will need to
review your schema, add the correct keys and uncomment it.-->
<!--<EntityType Name="Roles">
<Property Name="role_id" Type="decimal" />
<Property Name="role_desc" Type="nvarchar" MaxLength="30" />
</EntityType>-->
Run Code Online (Sandbox Code Playgroud)
感谢克雷格您的答复.
.net ado.net entity-framework primary-key visual-studio-2008
曾几何时,一位年轻,天真的工程师认为将他的应用程序的一些功能分成一个用C#编写的COM组件是个好主意.Visual Studio拥有所有这些工具,对吧?.NET实际上是为此做的,对吗?哈!他说,这很容易.我将对组件进行适当的分离,使业务逻辑远离前端,而使用COM,我将能够在任何地方使用它!他愉快地检查了register for COM interop项目属性中的复选框,暴露了他想要的分类,然后继续前进.
哦,试验这样的选择.这位年轻的工程师现在更有经验,现在不希望任何人这样做.但是,肩负重担,负担仍然沉重.他希望减轻负担.
随之而来的是WiX,一种用于从XML生成Windows Installer文件的工具.这引起了他的兴趣 - 它可以简单地从一些配置文件复制一个正确的Windows安装程序文件所需的大部分代码.他的目光正在抬头.
使用WiX 2.0,他可以很容易地生成注册C#COM对象所需的文件.这涉及使用工具牛油.他会做以下事情:
tallow -c -nologo MyComExposedLibrary.dll > MyComExposedLibrary.wxs
Run Code Online (Sandbox Code Playgroud)
然后将其修复(首先这是手动完成的,但最终我将步骤记录到一个小工具集中,最终目录引用ID,组件ID,文件ID,GUID和代码库).
然后,随后的安装程序将安装,如果应用程序工作,将有欢乐的庆祝活动.
它没有.
几天来,年轻的工程师倾注了他的开发PC和测试安装PC的差异."所有的注册表键都是一样的!" 他会惊呼."对于MyComExposedLibrary的所有内容都已注册,我发誓!"
除此之外,事实并非如此.
在第三天的黎明之后,经过许多山露,他意识到Visual Studio正在注册的另一个对象是他的安装程序不是:MyComExposedLibrary.tlb文件.
显然,Visual Studio一直在注册此文件,在HKLM\Software\Classes\Interface注册表项中创建其他子项,并在其中注册typelib HKLM\SOFTWARE\Classes\TypeLib.
Tallow没有给出任何帮助,抱怨说.tlb不是一个文件.也不是WiX 3.0测试版 - 这似乎有更多的问题让事情发挥作用.
我也尝试了热火.这生成了注册表元素和类元素.我清理了热量的输出,然后去编译它,但得到了一个不同的错误:error LGHT0130 : The primary key <uuid here> is duplicated in table 'Registry'.问题是,据我所知,uuid实际上并不存在于我的任何wxs源文件中.如果我在我的feature元素中改变组件引用顺序,则另一个dll组件会给出该错误.由于我没有成功完成项目的WiX 3.0版本的编译,我无法确认热量是否能提供正确的输出.
我从安装程序中删除了所有内容,除了导致出现此错误的程序集之一并再次尝试编译.我得到了同样的错误.Arrugh!
所以,我的好伙伴,Windows爱好者和WiX用户都有两个问题:
此外,我想作为另一部分,Visual Studio如何确定如何注册typelib?(编辑:看起来关于typelib注册的MSDN库文章有所需的密钥的名称,但我仍然需要弄清楚如何获取uuid的.(这是关于typelib的博客文章和Larry Osterman的COM注册.))再读一点,手动注册这些位可能会让我失望,但我希望不是......
我评估了输出regasm /regfile:MyDll.dll MyDll.dll.看起来这些是wix为dll生成的密钥.Regasm的另一种模式,regasm /tlb:<filename>生成并注册程序集的类型库,但是,
/ regfile [:FileName]生成具有指定名称的reg文件,而不是注册类型.此选项不能与/ u或/ tlb选项一起使用 …
如果一个人想用一种不寻常的语言编写游戏,但是没有用于操作图形的库或函数,那么如何实现呢?通过编写自己的低级例程?
CSS <div class="">和<div id="">CSS 之间的区别是什么?可以使用<div id="">吗?
我看到不同的开发人员在这两方面做到这一点,因为我自学成才,我从来没有真正弄明白.
IT管理员不允许在开发ASP.NET网站时使用SQL Server.被替换的当前设置是连接到Microsoft Access数据库的php站点.我有几个原因可以解释为什么要使用SQL,但希望尽可能多的强有力的论点(学生与IT人).有没有人对为什么要使用SQL有任何强有力的论据?特别针对一位IT经理表示"这是我们一直在做的事情,并且[它]一直在运作."
提前致谢!
UPDATE
为了"卸载"这个问题...如果你建议保持Access,何时以及为什么?
在我的Ruby应用程序中,我使用以下方法和正则表达式从字符串中删除所有HTML标记:
str.gsub(/<\/?[^>]*>/,"")
Run Code Online (Sandbox Code Playgroud)
这个正则表达式完成了我所期待的所有内容,除了它导致所有引号转换为“
所有单引号都要更改为”
.
将杂乱的代码转换回正确的字符时,我错过了哪些显而易见的事情?
编辑:无论有没有正则表达式都会出现问题,所以很明显我的问题与它无关.我现在的问题是如何处理这种格式错误并纠正它.谢谢!
我已经创建了以下RESTful WCF服务,在VS中运行它时工作得很好.
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json,
UriTemplate = "/sales/start={start}&end={end}")]
List<Sales> GetSalesByDate(string start, string end);
Run Code Online (Sandbox Code Playgroud)
但是,当将其部署到我的测试服务器(运行Win2K3和IIS6)时,我收到以下服务器错误:
合同'ISalesService'中的'GetSalesByDate'操作使用GET,但也有body参数'start'.GET操作不能有一个正文.将参数"start"设置为UriTemplate参数,或者从WebGetAttribute切换到WebInvokeAttribute.
显然我已经'开始'了一个UriParameter.所以有人能告诉我为什么会抛出异常吗?
编辑:作为参考,这是我的配置文件:
<?xml version="1.0"?>
<configuration>
<system.serviceModel>
<services>
<service name="Services.SalesService">
<endpoint behaviorConfiguration="webBehavior"
binding="webHttpBinding"
contract="Services.ISalesService"/>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="webBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Run Code Online (Sandbox Code Playgroud)