小编Ste*_*her的帖子

实体框架6异常:"在创建模型时不能使用上下文"

当它从旧式的ADO.NET进入实体框架6时,我有点新鲜,所以请耐心等待.

我正在尝试创建一个新的WPF MVVM项目以及一些WinForms,它们将直接使用DBContext而不与EF 6进行数据绑定.

使用Visual Studio 2013实体框架向导,我通过逆向工程创建了代码优先于业务服务器上的当前数据库.然后我将数据模型类与上下文分开

这是DbContext代码:

namespace EFModels
{
    public partial class MyDataContext : DbContext
    {
        public MyDataContext () : base("name=MyDataContext")
        {
        }

        public virtual DbSet<Calibration> Calibrations { get; set; }
        public virtual DbSet<OrderDetail> OrderDetails { get; set; }
        public virtual DbSet<OrderHistory> OrderHistories { get; set; } 
        public virtual DbSet<WorkDetail> WorkDetails { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {   
            modelBuilder.Entity<WorkDetail>()
                    .HasMany(e => e.Calibrations)
                    .WithOptional(e => e.WorkDetail)
                    .HasForeignKey(e => e.WorkID);  
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework-6

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

验证时 Moq 失败异常:预期在模拟上调用至少一次,但从未执行过

这是另一个菜鸟菜鸟问题:

考虑以下:

    public class Company
{
    public string CompanyName {get; set; }
    public string Address {get; set; }
}

public interface IRepository
{
    bool CreateDatabase(string name);
    bool UpdateTable(Company _co);
}

public class MyService
{
    private IRepository _repo;

    public MyService(IRepository repo)
    {
        _repo = repo;
    }

    public bool Commit(string database_name, Company co)
    {
        if (_repo.CreateDatabase(database_name))
            return _repo.Commit(co);

        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,在存储库中,如果创建数据库成功,则返回 TRUE。如果所有 SQL UPDATE 也都成功,则 UpdateTable 也是如此。然后我所做的就是将结果传递回 ViewModel 以表明一切顺利。

所以在我的 MSTest 中:

    [TestMethod]
    public void Test_If_Calls_CreateDatabase_And_UpdateTable()
    {
        var name = …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing mstest moq

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

将 XAML 中的 ImageSource 设置为 PackIcon Kind?

我正在尝试组合一个功能区控件,我喜欢使用 MaterialDesign WPF Toolkit 的 IconPack 中的图标。有没有办法可以访问图标图像本身?

例如:使用网格图标,代码为<materialDesign:PackIcon Kind="Grid" />

如何将该图标分配给 ImageSource?

c# wpf xaml material-design-in-xaml

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

采访问:使用Moq验证没有接口时抛出的异常?

好的,有人问我:

鉴于这门课程

public class ModelWrapper
{
    private Customer _customer;             // Entity Framework POCO model

    public ModelWrapper(Customer model)
    {
        if (model == null)
            throw new ArgumentNullException("model");

        _customer = model;
    }
}
Run Code Online (Sandbox Code Playgroud)

使用Moq编写单元测试来测试传入null参数时抛出ArugmentNullException.注意:您不需要实现接口

好的,所以我认为可以在xUnit中使用这样的东西:

[Fact]
public void ShouldTestArgumentNullException()
{
    var test = Assert.Throws<ArgumentNullException>(
        new ModelWrapper(null)
    );

    Assert.Equal(test.ParamName,"model");
}
Run Code Online (Sandbox Code Playgroud)

即使这有效,但这不是正确的答案.然后我尝试了这个:

_mock.Setup( w => new ModelWrapper(null)).Throws(new ArgumentNullException("model"));
_mock.Verify();
Run Code Online (Sandbox Code Playgroud)

这不行,我得到了这个例外:

消息:System.ArgumentException:Expression不是方法调用:w => new ModelWrapper(null)

那么,正确的答案是什么?

编辑更新:有人告诉我,我只能在Moq使用一个具体的类,如下所示:

 var _mock = new Mock<ModelWrapper>(); 
Run Code Online (Sandbox Code Playgroud)

但是,我仍然没有看到如何做到这一点.正如您在使用具体类ModelWrapper编写代码时所看到的那样,它仍然失败了.

c# unit-testing moq

0
推荐指数
1
解决办法
912
查看次数