无法使用“.添加()”

本文关键字:添加 | 更新日期: 2023-09-27 18:18:11

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

错误说,"This EntitySet of Type 'Diavik.DataAccess.Person' does not support the 'Add' operation.">

这是一个 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()之间的转换。它只需要存在,仅此而已。