C# 根据ef中的另一个字段值更新字段值
如何根据实体框架mirations中的另一个字段值更改字段值 我有一个名为Tbl_Accounts的表,表中有以下列:C# 根据ef中的另一个字段值更新字段值,c#,entity-framework,C#,Entity Framework,如何根据实体框架mirations中的另一个字段值更改字段值 我有一个名为Tbl_Accounts的表,表中有以下列: ID(int) 代码(nvarchar(50)) 姓名(nvarchar(50)) ParentID(int:nullable)--->这是Account类型的父级ID(树结构) 在我的旧版本程序中,“代码”列有一个3位长度的数值, 例如,我在下面列出了Tbl_账户中存储的一些数据: 1、'100','Parent1',null 2、'200','Parent2',空 3、'
例如,我在下面列出了Tbl_账户中存储的一些数据:
- 1、'100','Parent1',null
- 2、'200','Parent2',空
- 3、'300','Parent3',空
- 4、'001'、'父母的第一个孩子1',1
- 5、'002'、'Second Child OF Parent1',1
- 6、'001'、'父母第一个孩子的第一个孩子1',4
- 7、'001'、'父母第二个孩子的第一个孩子1',5
- 1,'100','Parent1',null
- 2,'200','Parent2',空
- 3,'300','Parent3',空
- 4,“100001”,“父母的第一个孩子1”,1
- 5、‘100002’、‘父母的第二个孩子1’、1
- 6、'100001001'、'1号家长第一个孩子的第一个孩子',4
- 7、‘100002001’、‘父母的第二个孩子的第一个孩子’,5
- 100002:ID为5的记录中代码列的值
- 001:ID=7的记录中代码列的实际值
- 100:ID为1的记录中代码列的值
- 002:ID=5的记录中代码列的实际值
Sql(你想在迁移中做到这一点吗?这样你就可以完美地使用原始sql,对吗?迁移是基于你的实体而不是表中的条目来更改数据库的架构。所以请告诉我最好的方法是什么???,我希望任何用户第一次运行我的程序的新版本,程序自动更新值,而不是ks,但另一个数据库呢???所有数据库都支持Transact-SQL和公共表表达式???@hosseinab当然不是。您正在使用不同的数据库?还没有,但这是可能的。@hosseinab好的,所以您可以对其他数据库使用其他脚本。我必须承认,我从未尝试对不同的目标数据库使用代码优先迁移。。。
WITH cte
AS
(
SELECT id, code
FROM Tbl_Accounts
WHERE parent_id IS NULL
UNION ALL
SELECT u.id, d.code + u.code
FROM Tbl_Accounts AS u
INNER JOIN cte AS d
ON d.id = u.parent_id
)
update t
set t.code = c.code
from cte c
join Tbl_Accounts t on t.id = c.id
Sql(<yourStringVariableContainingTheSql);