小编Ima*_*sab的帖子

EF codefirst:我应该初始化导航属性吗?

我曾经看过一些书(例如编程实体框架代码Julia Lerman)定义了他们的域类(POCO)而没有初始化导航属性,如:

public class User
{
    public int Id { get; set; }
    public string UserName { get; set; }

    public virtual ICollection<Address> Address { get; set; }
    public virtual License License { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

生成POCO时,其他一些书籍或工具(例如Entity Framework Power Tools)初始化类的导航属性,如:

public class User
{
    public User()
    {
        this.Addresses = new IList<Address>();
        this.License = new License();
    }
    public int Id { get; set; }
    public string UserName { get; set; }

    public virtual ICollection<Address> Addresses { …
Run Code Online (Sandbox Code Playgroud)

c# domain-driven-design entity-framework navigation-properties ef-code-first

59
推荐指数
2
解决办法
2万
查看次数

如何使用过滤器遍历kendoUI网格中的所有行

这是我的代码.它可以工作,如果你想遍历所有行.现在,QA告诉我,我必须支持过滤器.因此,当用户使用过滤器时,只有行的子集将显示在网格上.我只需要遍历那些行.

    var entityGrid = $("#EntitesGrid").data("kendoGrid");       
    var data = entityGrid.dataSource.data();
    var totalNumber = data.length;

    for(var i = 0; i<totalNumber; i++) {
        var currentDataItem = data[i];
        VersionIdArray[i] = currentDataItem.VersionId;
    }
Run Code Online (Sandbox Code Playgroud)

我试过了.

    var data = entityGrid.dataSource.data().fetch();
Run Code Online (Sandbox Code Playgroud)

    var data = entityGrid.dataSource.data().filter();
Run Code Online (Sandbox Code Playgroud)

无法让它运作.

kendo-ui

23
推荐指数
2
解决办法
5万
查看次数

我们应该单独测试记录吗?

通常在代码中看到日志记录功能:

public class A {

    private static final Log LOG = LogFactory.getLog(A.class);
Run Code Online (Sandbox Code Playgroud)

和用法:

} catch (Exception e) {
    LOG.error(e.getMessage(), e);
    throw e;
}
Run Code Online (Sandbox Code Playgroud)

但我从来没有看到过这种代码的单一单元测试.

当然我测试抛出异常和异常类型,但是我应该编写测试来检查日志记录信息吗?我倾向于认为日志记录是系统行为的另一部分,所以它在逻辑上退出以在测试中覆盖它.

假设我应该覆盖它,意味着我应该更改我的原始代码以注入模拟日志并检查是否使用预期消息调用了"error"方法.但是,如果我的原始类是service并且它是由spring实例化的,该怎么办?我应该注入一些记录器以及其他依赖项吗?

java logging unit-testing

21
推荐指数
2
解决办法
2万
查看次数

JSON.NET作为WebAPI 2 OData序列化程序与ODataMediaTypeFormatter

我正在尝试将JSON.NET用作WebAPI 2堆栈中的默认序列化程序.我已经实现了JsonMediaTypeFormatter,其中我使用了JSON.NET序列化程序来序列化/反序列化数据,并创建了JsonContentNegotiator来使用这种媒体类型格式化程序.除OData查询外所有工作正常 - 如果我添加[可查询]元数据ot动作方法,则响应对象不包含任何元数据信息,仅包含实体列表.

小例子.我的行动方法:

[Queryable]
public async Task<PageResult<RuleType>> GetRuleType(ODataQueryOptions<RuleType> options)
{
    var ret = await _service.ListRuleTypesAsync(options);
    return new PageResult<RuleType>(
        ret,
        Request.GetNextPageLink(),
        Request.GetInlineCount());
}
Run Code Online (Sandbox Code Playgroud)

如果我使用默认的OData序列化并按规则类型调用一些查询(例如 - .../odata/RuleType?$inlinecount=allpages&$skip=0&$top=1),我会收到带有元数据信息和计数属性的经典OData响应:

odata.metadata ".../odata/$metadata#RuleType" 
odata.count    "2" 
value
        0    {
                 Id: 1
             Name: "General"
             Code: "General"
             Notes: null
             }
Run Code Online (Sandbox Code Playgroud)

(某些领域跳过,但我有一个空值Notes属性),但如果我加上我JsonContentNegotiatorJsonMediaTypeFormatter一个串行-我只接收实体的名单:

[
  {
    "Id": 1,
    "Name": "General",
    "Code": "General"
  }
]
Run Code Online (Sandbox Code Playgroud)

(因为这里没有Notes字段NullValueHandling.Ignore)更多.如果我[Queryable]在动作方法中删除属性 - 我收到另一个结果:

{
  "Items": [
    {
      "Id": 1,
      "Name": "General",
      "Code": "General"
    }
  ],
  "Count": 2 …
Run Code Online (Sandbox Code Playgroud)

serialization json.net asp.net-web-api

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

使用Entity Framework 5和nuget重新创建表

我正在使用Code First创建一个表.

我创建了类,映射文件并在nuget中发出了add-migration命令,然后是update-database命令

然后我改变了课程,就像一个白痴删除了桌子.

我删除了迁移类文件

我发出了一个add-migration命令

当我发出update-database命令时,我收到以下错误:

System.Data.SqlClient.SqlException(0x80131904):找不到对象"dbo.CorrectiveActionPlan",因为它不存在或您没有权限.在System.Data.SqlClient.SqlConnection.OnError(SqlException异常,Boolean breakConnection,Action1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action在System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj,布尔callerHasConnectionLock,布尔asyncClose)的System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj,Boolean&)中的1 wrapCloseInAction) dataReady)在System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName,Boolean async,Int32 timeout),System.Data.SqlClmand.SmandCommand.InternalExecuteNonQuery(TaskCompletionSource 1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at System.Data.Entity.Migrations.DbMigrator.ExecuteSql(DbTransaction transaction, MigrationStatement migrationStatement) at System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.ExecuteSql(DbTransaction transaction, MigrationStatement migrationStatement) at System.Data.Entity.Migrations.DbMigrator.ExecuteStatements(IEnumerable1 migrationStatements),位于System.Data.Entity.Migrations.Infrastructure.MigratorBase. ExecuteStatements(IEnumerable的1 migrationStatements) at System.Data.Entity.Migrations.DbMigrator.ExecuteOperations(String migrationId, XDocument targetModel, IEnumerable在System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator.ApplyMigration(DbMigration migration,DbMigration lastMigration)上的System.Data.Entity.Migrations.DbMigrator.ApplyMigration(DbMigration migration,DbMigration lastMigration)中的1个操作,布尔降级,布尔自动) System.Data.Entity.Migrations.DbMigrator.Upgrade(IEnumerable 1 pendingMigrations,String targetMigrationId,String lastMigrationId)1 pendingMigrations, String targetMigrationId, String lastMigrationId) …

entity-framework nuget ef-migrations

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

kendo grid delete命令无法正常工作

我使用kendo ui工具开发了一个Web应用程序,还有一个带有批量编辑模式的kendo网格.

但是当我按下删除按钮以获取剑道网格中的任何记录时,它将从网格中的列表中删除但实际上不在数据源中.当我重新加载页面或网格时,删除的项目仍然存在.

这是我网格的代码

<div id="grid">
        </div>
        <script type="text/javascript">

            $("#submitMarketUser").click(function () {
                var grid = $("#grid").data("kendoGrid");
                var dataSource = new kendo.data.DataSource({
                    transport: {
                        read: {
                            url: "WholeSaleTrade/GetTradeProductDetail",
                            dataType: "json",
                            data: {
                                test: $("#Names").val()
                            }
                        },
                        destroy: {
                            url: "WholeSaleTrade/DeletePro",
                            type: "POST",
                            dataType: "jsonp",
                            data: {
                                DAKy: $("#Names").val(),
                                DIKy: $("#btntxt").val()
                            }
                        },
                        create: {
                            url: "WholeSaleTrade/CreateProduct",
                            type: "POST",
                            dataType: "jsonp",
                            data: {
                                AKy: $("#Names").val(),
                                IKy: $("#btntxt").val()
                            }
                        }
                    },
                    pageSize: 5,
                    schema: {
                        model: {
                            id: "ProductKey", …
Run Code Online (Sandbox Code Playgroud)

kendo-ui kendo-grid

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

Visual Studio 2013编辑剃刀文件的速度很慢

我刚刚安装了VS2013.当我按下UpDown键入剃刀文件编辑器时,它不是纯粹的HTML并且有一些剃刀代码VS 2013减慢并永久消耗~25%的CPU,一切都很慢,直到我重新启动VS.

我注意到只有在重新打开剃刀文档时才会出现问题.如果打开解决方案时文档已打开,则不会出现问题.

我尝试了很多东西,但没有一个能解决问题:

  • 禁用Resharper
  • 禁用生产力Power Tools 2013
  • 在" 选项 - 环境 "中取消选择" 富客户端视觉体验 "
  • 禁用git插件或其他源代码管理:将当前源代码控制插件设置为

我在VS 2012的同一台机器上测试它,一切正常.


编辑:我测试了不同的场景,最后我发现以下几行会导致问题:

<ul>
    <li style="@(!User.IsInRole("men") ? "display: none" : "")">Menu1</li>
    <li style="@(!User.IsInRole("women") ? "display: none" : "")">Menu2</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

如果我删除style="@(!User.IsInRole("men") ? "display: none" : "")"问题不再发生.任何的想法?


编辑:我已经报给Microsoft问题在这里,请给予好评更好的和快速的支持.

c# asp.net-mvc razor asp.net-mvc-4 visual-studio-2013

14
推荐指数
1
解决办法
2632
查看次数

Kendo UI AutoComplete数据源传输只读取一次

我对Kendo UI AutoComplete组件感到疯狂.我正在使用自己的函数来使用jQuery访问数据,因此我必须将AutoComplete dataSource.transport.read设置为函数.代码是这样的.

minLengthAtocomplete = 3;

$('#autocomplete').kendoAutoComplete({
    minLength : 3,
    filter : "contains",
    dataValueField : "key",
    dataTextField : "value",
    dataSource : new kendo.data.DataSource({
        transport : {
            read : _OnTransportRead
        },
        schema : {
            /* object schema */
        }
    })
});

function _OnTransportRead(e) {
    var text = $.trim(e.data.filter.filters[0].value);

    if (text && text.length >= minLengthAtocomplete) {
        _GetUsers(
            text,
            function onSuccess(data) {
                var users = [];
                 /* sets users with info in data */
                e.success(users);
            },
            function onError(error) {
                /* stuff with …
Run Code Online (Sandbox Code Playgroud)

datasource autocomplete transport kendo-ui

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

显示线框和纯色

是否可以在同一对象上显示对象的线框以及其面的纯色?我找到了一种方法,使用对象的克隆并分配不同的材料,例如

var geometry = new THREE.PlaneGeometry(plane.width, plane.height,width - 1, height - 1);
var materialWireframe = new THREE.MeshPhongMaterial({color:"red",wireframe:true});
var materialSolid = new THREE.MeshPhongMaterial({color:"green",wireframe:false});
var plane = new THREE.Mesh(geometry, materialWireframe );
var plane1 = plane.clone();
plane1.material = materialSolid ;
plane1.material.needsUpdate = true;
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

mesh material three.js

13
推荐指数
2
解决办法
2万
查看次数

选择更改事件时清除自动完成值

我有以下http://jsfiddle.net/TgBzB/3/,并希望在用户选择项目时清除自动填充字段.以下代码不会这样做: -

$("#input").data("kendoAutoComplete").value("");
Run Code Online (Sandbox Code Playgroud)

这可能吗?

//create AutoComplete UI component
$("#input").kendoAutoComplete({
    dataSource: data,
    filter: "startswith",
    placeholder: "Select country...",
    select: function(e) {
        var dataItem = this.dataItem(e.item.index());
        $('#list').append("<li>" + dataItem + "</li>");
        //How do I clear the #input here?
        $("#input").data("kendoAutoComplete").value(""); 
    }
});
Run Code Online (Sandbox Code Playgroud)

kendo-ui

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