C# 如果在另一个表中插入新行,Linq将更新一行

C# 如果在另一个表中插入新行,Linq将更新一行,c#,.net,linq,C#,.net,Linq,这里有4个表,当使用linq在另一个表中添加新行时,我尝试更新最后一个条目行 自定义表: CustomerId Name EmailId ------------------------- 1 Paul r@r.com 2 John J@j.com LoyaltyPointsId LoyaltyType Points --------------------------------------- 1 Regis

这里有4个表,当使用linq在另一个表中添加新行时,我尝试更新最后一个条目行

自定义表

CustomerId Name   EmailId
-------------------------
1          Paul   r@r.com
2          John   J@j.com
LoyaltyPointsId LoyaltyType     Points
---------------------------------------
1               Registration       10
2               Loginstatus         1
3               Downloading        10
4               Redemming           1
5               Sharing            20
6               Refer              10
 LoyaltyDetailsId LoyaltyPointsId CustomerId Dates
 -------------------------------------------------
  1                    1            1       2015-01-22 
  2                    2            1       2015-01-22 
  3                    3            2       2015-01-22
  4                    3            1       2015-01-22 
  5                    4            1       2015-01-22
  6                    4            1       2015-01-24  
  7                    2            1       2015-01-24  // here one new row is added based on LoginStatus
下表为每个LoyatyType分配点

忠诚输入表

CustomerId Name   EmailId
-------------------------
1          Paul   r@r.com
2          John   J@j.com
LoyaltyPointsId LoyaltyType     Points
---------------------------------------
1               Registration       10
2               Loginstatus         1
3               Downloading        10
4               Redemming           1
5               Sharing            20
6               Refer              10
 LoyaltyDetailsId LoyaltyPointsId CustomerId Dates
 -------------------------------------------------
  1                    1            1       2015-01-22 
  2                    2            1       2015-01-22 
  3                    3            2       2015-01-22
  4                    3            1       2015-01-22 
  5                    4            1       2015-01-22
  6                    4            1       2015-01-24  
  7                    2            1       2015-01-24  // here one new row is added based on LoginStatus
忠诚详细信息稳定

CustomerId Name   EmailId
-------------------------
1          Paul   r@r.com
2          John   J@j.com
LoyaltyPointsId LoyaltyType     Points
---------------------------------------
1               Registration       10
2               Loginstatus         1
3               Downloading        10
4               Redemming           1
5               Sharing            20
6               Refer              10
 LoyaltyDetailsId LoyaltyPointsId CustomerId Dates
 -------------------------------------------------
  1                    1            1       2015-01-22 
  2                    2            1       2015-01-22 
  3                    3            2       2015-01-22
  4                    3            1       2015-01-22 
  5                    4            1       2015-01-22
  6                    4            1       2015-01-24  
  7                    2            1       2015-01-24  // here one new row is added based on LoginStatus
他曾经登录过一次,所以他的登录状态点是1,现在我想在下面的另一个表中更新这一点

预期输出:

价格索赔表

PriceClaimId CustomerId PriceId  Current Points

1               2         22          150
2               1         23          200 // here update the last row of CustomerId as 231 
                                      //based on every new entry on LoyaltyDetailsTable
假设他再次登录200+1=201
然后他正在下载201+10=211
然后他做了211+20=231的分享


我可以在Linq中使用sql触发器并找到解决方案吗?

use可以使用
触发器来完成这项工作。您可以寻找编写一个。

使用可以使用
触发器来完成此任务。您可以寻找编写一个。

使用可以使用
触发器来完成此任务。您可以寻找编写一个。

使用可以使用
触发器来完成此任务。您可以考虑编写一个视图。

如何创建一个连接到LoyaltyPointTable的LoyaltyDetailsTable视图,该视图对LoyaltyPointTable求和。指向每个客户,例如(取决于您的SQL方言)


如何创建一个连接到LoyaltyPointTable的LoyaltyDetailsTable视图,对每个客户的LoyaltyPointTable进行求和,例如(取决于您的SQL方言)


如何创建一个连接到LoyaltyPointTable的LoyaltyDetailsTable视图,对每个客户的LoyaltyPointTable进行求和,例如(取决于您的SQL方言)


如何创建一个连接到LoyaltyPointTable的LoyaltyDetailsTable视图,对每个客户的LoyaltyPointTable进行求和,例如(取决于您的SQL方言)

1、在您的数据引擎上

你可以用扳机

2、你的节目

你可以编写一个机制

通常trihger会影响性能,我会在您的数据引擎上使用计划B

你可以用扳机

2、你的节目

你可以编写一个机制

通常trihger会影响性能,我会在您的数据引擎上使用计划B

你可以用扳机

2、你的节目

你可以编写一个机制

通常trihger会影响性能,我会在您的数据引擎上使用计划B

你可以用扳机

2、你的节目

你可以编写一个机制



通常trihger会影响性能,我会使用方案B

这有一个优点,即如果出于某种原因需要删除忠诚详细信息稳定条目,视图在下次读取时会自动更正,我会得到错误,因为:关键字“BEGIN”附近的语法不正确,还有一个问题,使用此选项,我可以根据忠诚度DetailStable的变化将PriceClaimTable行从200更新到231吗?我使用的是SQLServer2012,DBMS使用的是
begin。。在创建视图时结束
?如果我是您,我不会尝试将视图的输出持久化到PriceClaimTable中。它是“衍生数据”,并且,除非您有非常严格的性能约束,否则最好根据需要计算派生数据。我已删除了上面的开始/结束。这样做的好处是,如果您出于某种原因需要删除忠诚详细信息稳定条目,则视图将在下一次读取时自动更正。错误为:关键字“BEGIN”附近的语法不正确,还有一个问题,我可以根据忠诚度DetailStable的变化将PriceClaimTable行从200更新到231吗?我使用的是SQLServer2012,DBMS使用的是
begin。。在创建视图时结束
?如果我是您,我不会尝试将视图的输出持久化到PriceClaimTable中。它是“衍生数据”,并且,除非您有非常严格的性能约束,否则最好根据需要计算派生数据。我已删除了上面的开始/结束。这样做的好处是,如果您出于某种原因需要删除忠诚详细信息稳定条目,则视图将在下一次读取时自动更正。错误为:关键字“BEGIN”附近的语法不正确,还有一个问题,我可以根据忠诚度DetailStable的变化将PriceClaimTable行从200更新到231吗?我使用的是SQLServer2012,DBMS使用的是
begin。。在创建视图时结束
?如果我是您,我不会尝试将视图的输出持久化到PriceClaimTable中。它是“衍生数据”,并且,除非您有非常严格的性能约束,否则最好根据需要计算派生数据。我已删除了上面的开始/结束。这样做的好处是,如果您出于某种原因需要删除忠诚详细信息稳定条目,则视图将在下一次读取时自动更正。错误为:关键字“BEGIN”附近的语法不正确,还有一个问题,我可以根据忠诚度DetailStable的变化将PriceClaimTable行从200更新到231吗?我使用的是SQLServer2012,DBMS使用的是
begin。。在创建视图时结束
?如果我是您,我不会尝试将视图的输出持久化到PriceClaimTable中。它是“派生数据”,除非您有非常严格的性能约束,否则最好根据需要计算派生数据。我已经删除了上面的开始/结束Hi,我也喜欢代码机制,但如何在Linq中实现这一点,我的意思是在另一个表中查找更改并更新表行谢谢您的计划a,@karthik还提到要使用触发器,计划B我不知道怎么做,反正很好。嗨,我也喜欢代码机制,但我如何在Linq中实现这一点,我的意思是在另一个表中找到更改并更新表行谢谢你的计划a,@karthik还提到要使用触发器,计划B我不知道怎么做,反正很好。嗨,我也喜欢代码机制,但我如何在Linq中实现这一点,我的意思是在另一个表中查找更改并更新一个表行谢谢大家