当我调用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");
答案 0 :(得分:0)
_dbPath = dbPath ?? App.DatabasePath;
您正在使用三元运算符,因此您需要提供2个结果元素:
_dbPath = dbPath ?? App.DatabasePath:dbPath;
答案 1 :(得分:0)
不幸的是,Visual Studio并未显示Xamarin.Forms的完整异常。 确保用try子句包围代码,并阅读完整的异常消息。 对我来说,通过在HasData方法中包含ID字段(主键)解决了问题。