Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用DbContext.Set<;T>;。Add()不会添加到数据库_C#_Entity Framework_Asynchronous_Dbcontext - Fatal编程技术网

C# 使用DbContext.Set<;T>;。Add()不会添加到数据库

C# 使用DbContext.Set<;T>;。Add()不会添加到数据库,c#,entity-framework,asynchronous,dbcontext,C#,Entity Framework,Asynchronous,Dbcontext,我无法将存储库插入到数据库中 我的背景: public class Context : DbContext { public Context() : base("MyDatabase") { } public DbSet<Appartment> Appartments { get; set; } public DbSet<Sensor> Sensors { get; set; } public DbSet<Meas

我无法将存储库插入到数据库中

我的背景:

public class Context : DbContext
{
    public Context() : base("MyDatabase")
    {

    }

    public DbSet<Appartment> Appartments { get; set; }
    public DbSet<Sensor> Sensors { get; set; }
    public DbSet<Measurement> Measurements { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Measurement>().HasKey(m => new {m.AppartmentId, m.SensorId});

        modelBuilder.Entity<Measurement>()
            .HasRequired(m => m.Appartment);

        modelBuilder.Entity<Measurement>()
            .HasRequired(m => m.Sensor);
    }
}
公共类上下文:DbContext
{
公共上下文():基(“MyDatabase”)
{
}
公共数据库集装置{get;set;}
公共数据库集传感器{get;set;}
公共数据库集度量{get;set;}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
modelBuilder.Entity().HasKey(m=>new{m.AppartmentId,m.SensorId});
modelBuilder.Entity()
.需要(m=>m.公寓);
modelBuilder.Entity()
.has必需(m=>m.Sensor);
}
}
我的实体:

public class Appartment
{
    public int AppartmentId { get; set; }
    public int Floor { get; set; }
    public int Number { get; set; }
    public double Size { get; set; }

    public ICollection<Measurement> Measurements { get; set; }

    public Appartment()
    {

    }

    public Appartment(int floor, int number, int size)
    {
        Floor = floor;
        Number = number;
        Size = size;
    }
}
公共级公寓
{
公共int公寓ID{get;set;}
公共整数层{get;set;}
公共整数{get;set;}
公共双大小{get;set;}
公共ICollection度量值{get;set;}
公共公寓
{
}
公共公寓(内部楼层、内部编号、内部尺寸)
{
地板=地板;
数字=数字;
大小=大小;
}
}
我的存储库:

public class Repository<T> where T : class
{
    private Context _context;

    public Repository(Context context)
    {
        _context = context;
    }

    public async Task<int> Add(T t)
    {
        _context.Set<T>().Add(t);
        return await _context.SaveChangesAsync();
    }
公共类存储库,其中T:class
{
私人语境(private Context)(私人语境);;
公共存储库(上下文)
{
_上下文=上下文;
}
公共异步任务添加(T)
{
_context.Set().Add(t);
return wait_context.saveChangesSync();
}
我的测试:

class Program
{
    static void Main(string[] args)
    {
        var context = new Context();
        var appRepos = new Repository<Appartment>(context);

        var test = new Appartment(1,1,1);
        appRepos.Add(test);
}
类程序
{
静态void Main(字符串[]参数)
{
var context=新上下文();
var appRepos=新存储库(上下文);
var测试=新装置(1,1,1);
批准添加(测试);
}
使用此选项时,不会将Appartment对象插入到我的数据库中

我完全错过了什么吗


提前感谢。

您需要等待appRepos.Add,因为它是一个异步方法。否则,您的程序将在异步方法执行之前终止

await appRepos.Add(test);
但是,我无法在Main()中执行此操作。EDIT:appRepos.Add(test).Wait()工作正常。