小编Quo*_*ter的帖子

将一个对象转换为另一个

我有两个用户定义的CLR对象,它们是相同的,只是名称不同,例如这段代码:

public class Person
{
  public string Name { get; set; }
  public string Address { get; set; }
  public string LastName { get; set; }
  public string ETC { get; set; }
}

public class PersonData
{
  public string Name { get; set; }
  public string Address { get; set; }
  public string LastName { get; set; }
  public string ETC { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我知道这可以通过从这些CLR中的任何一个创建一个对象,然后逐个传递所有属性来完成.

但还有另一种方式吗?我有一些相当大的CLR,15个属性.

[编辑] 更多上下文.那里的课程已经存在.我使用数据库生成了一个模型EntityFramework.数据库与类几乎完全相同.

此外,它已经存在很多代码.这些类也继承了几个接口等.现在重构不是一个选项,所以我现在正在寻找一个简单的解决方案.

c# casting

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

POST KnockoutJS数据到mvc控制器没有绑定

我正在尝试做一个映射KnockoutJS模型的帖子.我可以看到调试时,这JSON是正确的.但服务器显示Product为0(空).虽然它确实包含1个项目.

MVC Controller:

[HttpPost]
public ActionResult Test(MyModel model, FormCollection fc)
{
   return RedirectToAction("index");
}
Run Code Online (Sandbox Code Playgroud)

AJAX提交:

$('#btnSubmit').click(function (event) {
        var theModel = ko.mapping.toJSON(viewModel);
        debugger;
        $.ajax({
            type: 'POST',
            url: "@Url.Action("Test", "Home")",
            data: theModel,
            contentType: 'application/json; charset=utf-8',
            success: function (result) {
                if (!result.success) {
                    //alert(result.error);
                }
                else { }
            }
        });
    });
Run Code Online (Sandbox Code Playgroud)

这是一个部分JSON对象:

"Products":[{"Id":2,"Name":"bread"}]
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

编辑:

public class MyModel
{
   public int User { get; set; }
   public string Address { get; …
Run Code Online (Sandbox Code Playgroud)

javascript asp.net-mvc json asp.net-mvc-4 knockout.js

5
推荐指数
1
解决办法
6103
查看次数

让孩子占用最大高度

我正试图.box-content div在boxA/boxB内留下最大高度div.我有一个div .box-header.box-contentBOXA /盒B内div.该.box-content是分享div.box-header.

在这个JSFiddle中你可以看到它.box-content是在它的父元素之外div.

如何使用纯CSS来解决这个问题,并考虑到以下两条规则:

  1. .box-content可拉伸的高度(每当窗口尺寸改变时生长/收缩);
  2. .box-content具有200像素的最小高度;

html css height stretch

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

EF Code First INSERT语句与FOREIGN KEY约束冲突

当我尝试在数据库中插入记录时,我收到以下错误消息:

INSERT语句与FOREIGN KEY约束"FK_dbo.Order_dbo.AspNetUsers_UserId"冲突.冲突发生在数据库"Test",表"dbo.AspNetUsers",列"Id"中.该语句已终止.

免责声明:我知道之前已经问过这个问题(这里,这里这里),但没有一个答案帮我修复了这个错误.

以下是模型:

[Table("Order")]
public class Order
{
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity), Key]
    public int Id { get; set; }

    [Required]
    public string UserId { get; set; }      

    public virtual List<OrderDetails> OrderDetails { get; set; }

    [ForeignKey("UserId")]
    public virtual ApplicationUser User { get; set; }
}    

[Table("OrderDetails")]
public class OrderDetails
{
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity), Key]
    public int Id { get; set; }

    [Required]
    public int OrderId { get; set; }

    [ForeignKey("OrderId")]
    public virtual Order Order { get; …
Run Code Online (Sandbox Code Playgroud)

c# runtime-error ef-code-first entity-framework-6 asp.net-identity

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

修改并抛出异常

我想使用其他信息来修改Message属性Exception。例如从生成SQLEF

但是我不想失去任何原始东西Exception。这会让我迷失stacktrace

catch (Exception ex)
{
    throw ex;
}
Run Code Online (Sandbox Code Playgroud)

这些Exception来自数据层。我想要throw他们,以便可以使用登录Elmah

我有什么选择?

c# exception elmah.mvc

5
推荐指数
1
解决办法
1681
查看次数

捕获div内任何元素的click事件

我有一个div包含一堆元素.这div将被隐藏(动画fadeOut())如果屏幕尺寸小于767px较小.但是如果用户点击其中的任何元素div,我想停止fadeOut().

但正如我现在看到的那样,我将不得不为我内部的每个元素添加一个click事件div.是不是有更优雅的方式来捕获所有点击事件div

jquery onclick

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

如何选择select over parent div

我创建了一个jsFiddle,它显示chosen-select控件被其父级"截断" div.即使overflow设置为y轴隐藏,它也会在单击chosen-select控件时显示滚动条.

height这位家长的div固定和设置200px,并需要保持这种方式.

点击后如何查看chosen-select父母div

编辑: jsFiddle更新更新CSS.如果我评论div.content,它不会弄乱布局.

chosen-select控件现在位于第4个标题之上.在这个小提琴我仍然可以选择chosen-select控件,但在我的应用程序中我不能.

我需要为头部的位置做些什么吗?

EDIT2: jsFiddle.我刚注意到,chosen-select当标题1/2向上滑动时,控制器保持在其位置.为了记录,这不会发生在我的应用程序中.

发生了什么,当你向上滑动第三个时heading,chosen-select控制是可见的,直到它一直滑落.与其他标题不同,其中的标题input正在慢慢隐藏.

css jquery-chosen

3
推荐指数
1
解决办法
9689
查看次数

Twitter bootstrap glyphicon出现在顶部

我有来自TB的glyphicons的这个问题.在这个jsFiddle中你可以看到glyphicon glyphicon-search出现在div紫色方块下面的幻灯片的顶部.

要查看此效果,请按右侧的按钮.

我的问题是,我该怎样避免这种情况?默认情况下,那些glyphicons是position:relative,我想保留它.

除非我显示一些代码,否则无法发布此内容..

$("#btn").click(function(){
$('#slider').remove();

  var sliderDiv = "<div id='slider' " +
      "class='alert alert-info alert-dismissable' " +
      "style='position: absolute; width:240px;'> " +
      "<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ornare condimentum sapien, vitae pulvinar libero ultrices sit amet.</div>";
    $(sliderDiv).insertAfter('#testing').hide().fadeIn('slow').wait(50000).slideUp('slow');
});
Run Code Online (Sandbox Code Playgroud)

css twitter-bootstrap

3
推荐指数
1
解决办法
1788
查看次数

迭代DbCommand中的参数

我正在尝试拦截并将所有SQL命令记录到数据库中.我也需要参数及其值.但command.Parameters没有IEnumerable.我可以去找一个for-statement但有点感觉就像一个退缩.

public override void ScalarExecuted(DbCommand command, DbCommandInterceptionContext<object> interceptionContext)
{
    _stopwatch.Stop();
    if (interceptionContext.Exception != null)
    {
        _logger.Error(interceptionContext.Exception, "Error executing command: {0}", command.CommandText);

        string param = string.Empty;

        if (command.Parameters.Count > 0)
        {
            foreach (var t in command.Parameters)
            {
                param += t....
            }
        }

        Log log = new Log() 
        { 
            Date = DateTime.UtcNow, 
            LogLevel = LogLevel.Error, 
            Message = command.CommandText + "\r\n " + param. 
        };
    }
    else
        _logger.TraceApi("SQL Database", "CommandInterceptor.ScalarExecuted", _stopwatch.Elapsed, "Command: {0}: ", command.CommandText); …
Run Code Online (Sandbox Code Playgroud)

c# logging entity-framework sqlcommand interceptor

3
推荐指数
1
解决办法
1745
查看次数

进行集成测试时如何让visual studio运行一次TestInitialize?

当我运行所有测试时,使用[TestInitialize]属性修饰的方法会针对我拥有的每个测试方法执行。

这些测试属于集成测试类型,用于测试数据库访问逻辑。在具有[TestInitialize]属性的方法中,我将一些测试数据插入到数据库中,这在多次执行时会导致以下异常:

结果消息:初始化方法......FilterRepositoryTests.Initialize 抛出异常。System.Data.Entity.Infrastructure.DbUpdateException:System.Data.Entity.Infrastructure.DbUpdateException:更新条目时出错。有关详细信息,请参阅内部异常。---> System.Data.Entity.Core.UpdateException:更新条目时出错。有关详细信息,请参阅内部异常。---> System.Data.SqlClient.SqlException:无法在具有唯一索引 'IX_Name' 的对象 'dbo.User' 中插入重复的键行。重复的键值为 (Person 1)。该语句已终止..

插入数据需要一些时间,所以我宁愿不为我拥有的每个测试方法删除和重新创建数据库。

那么如何才能为所有测试只执行一次初始化/设置方法呢?

c# integration-testing entity-framework

3
推荐指数
1
解决办法
1658
查看次数