我为我的所有控制器操作设置了一个全局过滤器,我在其中打开和关闭NHibernate会话.这些操作中有95%需要一些数据库访问,但有5%没有.是否有任何简单的方法来禁用这5%的全局过滤器.我可以反过来只装饰需要数据库的动作,但这将是更多的工作.
在我的服务器端,我使用的是ASP.NET MVC Web Api,我使用Crystal报告生成PDF文件并将其导出为PDF格式.代码如下:
[HttpPost]
public HttpResponseMessage SetReport(string name, [FromBody]List<KontoDto> konta)
{
var response = Request.CreateResponse(HttpStatusCode.OK);
var strReportName = "KontoReport.rpt";
var rd = new ReportDocument();
string strPath = HttpContext.Current.Server.MapPath("~/") + "Reports//" + strReportName;
rd.Load(strPath);
rd.SetDataSource(konta);
var tip = ExportFormatType.PortableDocFormat;
var pdf = rd.ExportToStream(tip);
response.Headers.Clear();
response.Content = new StreamContent(pdf);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
return response;
}
Run Code Online (Sandbox Code Playgroud)
我的Javascript代码是:
$scope.xxprint = function () {
console.log($scope.konta);
$http.post('/api/konto/setReport/pdf', $scope.konta, { responseType: 'arraybuffer' })
.success(function (data) {
var file = new Blob([data], { type: 'application/pdf' }); …Run Code Online (Sandbox Code Playgroud) 我在NHibernate 3.2和SQLite提供程序中有这个简单的linq查询:
var all = (from book in Session.Query<Book>() select book)
.Skip(15)
.Take(15)
.ToList();
Run Code Online (Sandbox Code Playgroud)
这个查询正确地返回了15个实体,但是当我尝试用FetchMany急切加载依赖集合时,如下所示:
var all = (from book in Session.Query<Book>() select book)
.FetchMany(books => books.Authors)
.Skip(15)
.Take(15)
.ToList();
Run Code Online (Sandbox Code Playgroud)
我只返回了11个实体.这是一个我错过的错误吗?
这是生成的SQL查询
select
book0_.Id as Id2_0_,
author2_.Id as Id0_1_,
book0_.Title as Title2_0_,
book0_.Sort as Sort2_0_,
book0_.TimeStamp as TimeStamp2_0_,
book0_.PubDate as PubDate2_0_,
book0_.Series_Index as Series6_2_0_,
book0_.Author_Sort as Author7_2_0_,
book0_.Isbn as Isbn2_0_,
book0_.Lccn as Lccn2_0_,
book0_.Path as Path2_0_,
book0_.Flags as Flags2_0_,
book0_.Uuid as Uuid2_0_,
book0_.Has_Cover as Has13_2_0_,
book0_.Last_Modified as Last14_2_0_,
author2_.Name as …Run Code Online (Sandbox Code Playgroud) 在我的剃刀风格助手类(位于App_Code文件夹中,我有这行代码:
<img src="../../Content/images/ajax_activity.gif" alt="loading"/>
Run Code Online (Sandbox Code Playgroud)
这在Cassini中运行良好,但是当我将应用程序部署到IIS(虚拟目录)时,IIS无法找到路径.虚拟路径被忽略.这也行不通:
<img src="@Href("~/Content/images/ajax_activity.gif")" alt="loading" />
Run Code Online (Sandbox Code Playgroud) 我试图在C#标识符中输入非ASCII字符,程序编译并运行得很好(至少乍一看).更确切地说,我在枚举中使用克罗地亚变音字符(čćđšž).我真的需要使用这些特殊字符,因为我将字符串枚举映射为NHibernate中的值对象.在将它们显示为对用户的查找时,必须避免使用这些标准字符真的很难看.在我以这种方式大规模开始使用枚举之前,我真的需要知道这种编程技术是否存在任何影响(隐藏的陷阱)(特别是关于NHibernate)?或者,如果您有更好的处理方法,请告诉我.
还有,用于重构的工具,SVN等有什么问题吗?
目前,我ng-grid用于以表格方式显示数据.此外,对于一些具有相当多记录的表,我正在使用服务器端分页来获取数据.
我对这个解决方案不太满意.我想要做的是当滚动条到达窗口的末尾(类似ngInfiniteScroll指令)时获取更多数据.我还没有找到一种方法来使用ng-grid.
所以,我的问题是:这可以完成ng-grid,如果是的话 - 如何?ng-grid对于这个问题,似乎没有开箱即用的解决方案.
当代码必须在引号内使用引号时,如何防止一个 javascript 文件中的 jslint 出现此错误,如下所示:
var checkBoxTemplate = '<div class="ngCellText text-center" ng-cell-text ng-class="col.colIndex()" ' +
'style="height: 100%;vertical-align: middle"> ' +
' <span ng-show="COL_FIELD" class="glyphicon glyphicon-ok" style="margin-top: 6px;"/> ' +
'</div> ';
Run Code Online (Sandbox Code Playgroud)
编辑: 找到罪魁祸首。在我的 .jshintrc 文件中,我有这一行:
"quotmark": "single"
Run Code Online (Sandbox Code Playgroud)
我什至找到了一种仅对一个文件禁用它的方法。您必须在 javascript 文件的开头添加此行:
/*jshint -W109 */
Run Code Online (Sandbox Code Playgroud)
并且该文件的错误消息被禁用。
编辑2 来自引用标记的JSHint文档:
警告 此选项已被弃用,并将在 JSHint 的下一个主要版本中删除。JSHint 将其范围限制在代码正确性问题上。如果您想强制执行与代码样式相关的规则,请查看 JSCS 项目。
我正在从NHibernate映射创建表和索引.
例如,我创建LastName索引如下:
<property name="LastName" column="LastName" type="String" length="50" not-null="true" index="IDX_Patient_Lastname"/>
Run Code Online (Sandbox Code Playgroud)
我想创建一个复杂的索引,以便例如LastName和FirstName作为一个索引生成.这在NHibernate有可能吗?
基本上,我正在做的是在服务器上生成一个 PDF 文件并通过这样的 javascript 在浏览器中显示它:
file = new window.Blob([data], { type: 'application/pdf' });
var fileUrl = URL.createObjectURL(file);
var wnd = window.open(fileUrl, "_blank", "location=no, fullscreen=yes, scrollbars=auto, width=" + screen.width + ",height=" + screen.height);
Run Code Online (Sandbox Code Playgroud)
所有这些工作正常,但每个浏览器都显示一个丑陋的副标题(类似这样):blob:2da57927-311e-4b3d-a261-d2679074802c
有什么办法可以去掉这个副标题或者用一些有意义的东西代替它吗?
编辑: 这是改进代码的屏幕截图(在应用 VisioN 的建议后):

我热衷于从ng-grid 2迁移到新的ui-grid 3.0替代品.事情到目前为止看起来不错 我无法弄清楚的一件事是如何使用向上和向下箭头键启用记录导航.当multiSelect设置为false时,这与ng-grid开箱即用.
angularjs ×3
asp.net-mvc ×3
javascript ×3
nhibernate ×3
asp.net ×2
html ×2
ng-grid ×2
report ×2
angular-ui ×1
c# ×1
css ×1
enums ×1
jshint ×1
linq ×1
razor ×1