1

我正在尝试将新的保存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);
}

谢谢您的帮助,

亚伦

4

1 回答 1

6

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

像这样的东西:

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

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

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

于 2013-06-12T20:14:38.943 回答