[英]Entity framework query add data from select
I am having a query written in C# with Entity Framework:我有一个使用实体框架用 C# 编写的查询:
var query = _context.MyTable
.Where(m => m.Id == request.MessageId && m.MessageStatusId == MessageStatusValue.Error)
.Select(m => new Message()
{
Id = m.Id,
MessageContentId = m.MessageContentId,
FullContent = m.FullContent,
CompanyCode = m.CompanyCode,
Environment = m.Environment,
MessageTime = m.MessageTime,
MessageType = m.MessageType,
QueueName = m.QueueName,
QueueSeqNo = m.QueueSeqNo,
Reciever = m.Reciever,
ResponseMessageId = m.ResponseMessageId,
Sender = m.Sender,
ModTime = modInfo.ModTime,
ModUserId = modInfo.ModUserId,
MessageDirectionId = MessageDirectionValue.Out,
MessageStatusId = MessageStatusValue.NotSent,
});
And next I want to Add it to my database using var entity:接下来我想使用 var entity 将它添加到我的数据库中:
var entity = _context.MyTable.Add(new Message()
{
Id = Guid.NewGuid(),
}).Entity;
But I want to have every data from Select written above.但我想把 Select 的所有数据都写在上面。 How do I do that?我怎么做?
First of all you have to execute the query to get the results from the query.首先,您必须执行查询才能从查询中获取结果。 You can execute the query with ToList()
您可以使用ToList()
执行查询
var messages = _context.MyTable
.Where(m => m.Id == request.MessageId && m.MessageStatusId == MessageStatusValue.Error)
.Select(m => new Message()
{
Id = m.Id,
MessageContentId = m.MessageContentId,
FullContent = m.FullContent,
CompanyCode = m.CompanyCode,
Environment = m.Environment,
MessageTime = m.MessageTime,
MessageType = m.MessageType,
QueueName = m.QueueName,
QueueSeqNo = m.QueueSeqNo,
Reciever = m.Reciever,
ResponseMessageId = m.ResponseMessageId,
Sender = m.Sender,
ModTime = modInfo.ModTime,
ModUserId = modInfo.ModUserId,
MessageDirectionId = MessageDirectionValue.Out,
MessageStatusId = MessageStatusValue.NotSent,
}).ToList();
Then you have a list of results which your are selected and you can add them to the db.然后你有一个你被选中的结果列表,你可以将它们添加到数据库中。 You can add every single message to the db or use AddRange(messages)
您可以将每条消息添加到数据库或使用AddRange(messages)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.