当它从旧式的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) 这是另一个菜鸟菜鸟问题:
考虑以下:
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) 我正在尝试组合一个功能区控件,我喜欢使用 MaterialDesign WPF Toolkit 的 IconPack 中的图标。有没有办法可以访问图标图像本身?
例如:使用网格图标,代码为<materialDesign:PackIcon Kind="Grid" />。
如何将该图标分配给 ImageSource?
好的,有人问我:
鉴于这门课程
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编写代码时所看到的那样,它仍然失败了.