我有EF7一个对象模型看起来是这样的:数据在EF7保存带有一个对象 - 与许多
Story -> StoryPhotos[]
我建立模型,通过一个表单提交一个故事,其中用户可以的还附上N张照片。模型创建看起来像这样:
var story = new Story
{
// ...
StoryPhotos = myFormData.Photos.Select(p => new StoryPhoto {
Name = p.Name,
FileName = p.FileName,
etc.
}).ToList()
}
然后,一旦我建立了我的数据模型,我通过存储库保存数据。
await repository.AddOrUpdateStoryAsync(story)
它看起来像这样
if (story.Id == 0)
{
context.Stories.Add(story);
context.StoryPhotos.AddRange(story.StoryPhotos);
}
else
{
// Update properties for an edit.
}
await context.SaveChangesAsync();
这个伟大的工程......只要我只有一个StoryPhoto。当我把一个以上的到阵列中,我得到这个异常:
An unhandled exception occurred while processing the request.
SqlException: Incorrect syntax near ','.
System.Data.SqlClient.SqlCommand.<>c__DisplayClass16.<ExecuteDbDataReaderAsync>b__17(Task`1 result)
我的研究表明,已经出现了一些不同的问题,有关于EF7是如何保存的对象图,但我在迷茫这种情况下,一个人可以节省罚款,多于一个则不会,并且不会对代码进行其他更改。
我正在使用EntityFramework-SqlServer 7.0.0-beta7。
当处理ORM时,SQL语法异常肯定是一个错误 – haim770
@ haim770我想知道(尤其是考虑测试版状态)。但是,当然,历史告诉我,我不应该首先责怪图书馆。我将在明天在Github上查看源代码作为另一个途径。如果有人能给我另一个想法,我会留下问题。 – JasCav
您的代码似乎没有任何问题。现在EF 7 beta 8已经发布,您可以尝试升级到该版本,以查看是否可以解决问题。 – htuomola