EF Database.EnsureDeleted()和Database.EnsureCreated()方法上的System.Reflection.TargetParameterCountException

时间:2018-07-10 11:09:52

标签: xamarin.forms entity-framework-core

当我调用Database.EnsureDeleted()Database.EnsureCreated()方法时,我遇到了这个问题。

  

未处理的异常:

     

System.Reflection.TargetParameterCountException:参数数量   指定的数字与预期的数字不匹配。

这是Xamarin Forms项目中EF的初始化代码。

public class DatabaseContext : DbContext
    {
        private readonly string _dbPath;

        public DatabaseContext (string dbPath = null) : base()
        {
            _dbPath = dbPath ?? App.DatabasePath;
            Database.EnsureDeleted();
            Database.EnsureCreated();
        }
  }

在Android项目下,代码如下:

 LoadApplication(new App());
            App.DatabasePath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments), "database.sqlite");

2 个答案:

答案 0 :(得分:0)

  

_dbPath = dbPath ?? App.DatabasePath;

您正在使用三元运算符,因此您需要提供2个结果元素:

  

_dbPath = dbPath ?? App.DatabasePath:dbPath;

答案 1 :(得分:0)

不幸的是,Visual Studio并未显示Xamarin.Forms的完整异常。 确保用try子句包围代码,并阅读完整的异常消息。 对我来说,通过在HasData方法中包含ID字段(主键)解决了问题。