c# - 无法使用 ".Add()"插入新的 Entity Framework 实体

标签 c# entity-framework silverlight

我正在尝试将新的 Person 保存到数据库中。我的代码编译得很好,但是当我运行它时,我在 .Add() 处遇到错误。

错误说, “此类型为‘Diavik.DataAccess.Person’的 EntitySet 不支持‘添加’操作。

这是一个 SilverLight 应用程序,这个文件是 App.xaml.cs

这是我的代码:

private void OnGetPerson_Completed(LoadOperation<Person> operation)
{
    Person person = operation.Entities.SingleOrDefault();

    if (person == null)
    {
        person = new Person()
        {
            FirstName = WebContext.Current.User.FirstName,
            LastName = WebContext.Current.User.LastName,
            IlluminatorLogin = WebContext.Current.User.Name
        };

        Context.Persons.Add(person);
    }

    Context.SubmitChanges(submitOp =>
    {
        // Some Stuff
    }, null);
}

谢谢你的帮助,

亚伦

最佳答案

您需要在域服务中有一个方法标记为 [Insert] 方法。它必须是publicvoid,并且只有一个参数(Person 对象)。

像这样:

[Insert]
public void InsertPerson(Person p)
{
    ObjectContext.Persons.AddObject(p);
}

此代码可能不是您所需要的,因为我不知道您的域服务是什么样的,但您已经了解了大致的想法。

您实际上不需要直接调用此服务方法,RIA 服务链接处理此方法与您在客户端调用 Persons.Add() 之间的转换。它必须存在,仅此而已。

关于c# - 无法使用 ".Add()"插入新的 Entity Framework 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17074300/

相关文章:

c# - 等效于 C# 的 C 代码,用于安装证书

c# - Client Generated 不向第三方提供有关已知类型的信息

c# - 然后在 Entity Framework 核心中包含显式加载?

silverlight - WCF RIA 服务和通过 SSL 通信

silverlight - 当前不会命中断点 : No symbols have been loaded for this document

c# - C# 中基于 Web 的单元测试

c# - NHibernate.Event.IPostDeleteEventListener 不适用于交易

c# - 如何执行 find() 并返回找到的实体之前和之后的实体?

c# - Entity Framework 中有序集的并集,然后跳过

c# - 如何从 WCF 服务调用 Silverlight 方法