使用 (Db)LINQ 进行交叉表/对象更新
我想知道是否有人可以帮我将 MySQL 查询翻译为 (Db)LINQ 语句。
我已经为我想做的事情做了一个测试用例,所以数据和结构是 与我真正想做的不同,但这只是为了得到它 在职的。
在 MySQL 数据库中,我有这张表:
CREATE TABLE `mytable1`
(
`id` int(11) NOT NULL AUTO_INCREMENT,
`number` int(11) NOT NULL,
`name` varchar(20) COLLATE latin1_general_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci
内容
id number name
1 10 aaa
2 20 bbb
3 25 cccc
4 30 ddd
5 35 eee
这是我在 C# 中使用 DBLinq 连接到该表的 。 在C#程序中,我也有一个这样的列表:
List<myDataFields> myNewData = new List<myDataFields>();
如果
public class myDataFields
{
public int number { get; set; }
public string name { get; set; }
}
列表的内容是:
number name
10 firstName
20 secondName
30 ThirdName
列表的内容是mysql中的表(table2),我可以 只需使用以下查询更新 table1:(
update mytable1,mytable2 set mytable1.name=mytable2.name where
mytable1.number=mytable2.number;
在现实生活中,我实际上必须匹配两列作为键)
结果将是
id number name
1 10 firstName
2 20 secondName
3 25 cccc
4 30 ThirdName
5 35 eee
但是如何使用 DBLinq 和 c# 中的列表更新 table1?
I wonder if someone can help me translate a MySQL query to
a (Db)LINQ statement.
I’ve made a test case for what I want to do, so data and structure are
different than what I really want to do, but it’s just meant to get it
working.
In a MySQL database I have this table:
CREATE TABLE `mytable1`
(
`id` int(11) NOT NULL AUTO_INCREMENT,
`number` int(11) NOT NULL,
`name` varchar(20) COLLATE latin1_general_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci
This is the content
id number name
1 10 aaa
2 20 bbb
3 25 cccc
4 30 ddd
5 35 eee
I use DBLinq within C# to connect to this table.
In the C# program, I also have a list like this:
List<myDataFields> myNewData = new List<myDataFields>();
With
public class myDataFields
{
public int number { get; set; }
public string name { get; set; }
}
Content of the list is:
number name
10 firstName
20 secondName
30 ThirdName
If the content of the list would be a table in mysql (table2), I could
just update table1 with this query:
update mytable1,mytable2 set mytable1.name=mytable2.name where
mytable1.number=mytable2.number;
(in real life I actually have to match two columns to be a key)
The result will be
id number name
1 10 firstName
2 20 secondName
3 25 cccc
4 30 ThirdName
5 35 eee
But how can I update table1, using DBLinq and the List within c#?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
解决问题是这样的:
如果有人知道更好的解决方案,请告诉我。
Solved the problem like this:
If someone knows a better solutions, please let me know.