gpt4 book ai didi

c# - 在 Entity Framework Core 中获取没有模型的表值

转载 作者:行者123 更新时间:2023-11-30 23:04:06 25 4
gpt4 key购买 nike

我有一个迁移到 Entity Framework Core 的应用程序。但是我有一些应用程序需要支持这种迁移。他们的表中有一列不再存在(它位于另一个地方)。

我正在尝试弄清楚如何使用我的 Entity Framework Core 应用程序读取旧数据库并提取列信息(如果存在)。

非常感谢对此的任何帮助。

编辑:减少范围。

我在旧的 sqlite 数据库中有一个表,该表有一列。我想使用 Entity Framework Core 从旧数据库中提取该列,以便将其插入新位置。

最佳答案

您可以编写自己的 sql 代码,而不是使用 Entity Framework 抽象。

我个人使用我在网上找到的东西(再也找不到原始来源)来添加链接到我的自定义查询的通用类支持:

public class MyRefDatabaseContext: RefDatabaseContext
{
public List<T> ExecSQL<T>(string query)
{
using (var command = Database.GetDbConnection().CreateCommand())
{
command.CommandText = query;
command.CommandType = CommandType.Text;
Database.OpenConnection();

List<T> list = new List<T>();
using (var result = command.ExecuteReader())
{
T obj = default(T);
while (result.Read())
{
obj = Activator.CreateInstance<T>();
foreach (PropertyInfo prop in obj.GetType().GetProperties())
{
if (!object.Equals(result[prop.Name], DBNull.Value))
{
prop.SetValue(obj, result[prop.Name], null);
}
}
list.Add(obj);
}
}
Database.CloseConnection();
return list;
}
}
}

编辑:为了清晰起见,我添加了包装类

关于c# - 在 Entity Framework Core 中获取没有模型的表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49563076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com