Silverlight -RIA服务 - 此类型<>的实体集不支持“添加”操作

时间:2010-03-10 16:06:31

标签: exception service entity set ria

在Silverlight项目中,当我尝试在单击按钮时向DataGrid添加新对象时,我遇到此异常。 在DomainService类中.. 我知道我必须为我正在推出的新实体实现Add操作,但是我该怎么做呢?  我的意思是我做了类,get方法,但是如何进行插入操作,我无法在this.ObjectContext中看到我的类,所以我要添加这个新对象,我有下一段代码:

public partial class SisPer
    {
        [Key]
        public int Id { get; set; }
        public string Nombre_Sistema { get; set; }
        public string Nombre_Perfil { get; set; }
        public string Nivel { get; set; }
        public bool Estatus { get; set; }
    }

 public IQueryable<SisPer> Get_SisPer()
        {

            var query =
                   from per in this.ObjectContext.Cat_Perfil
                   join sis in this.ObjectContext.Cat_Sistema
                   on per.Cat_Sistema.Id equals sis.Id

                   select new SisPer()
                   {
                       Id = per.Id,
                       Nombre_Sistema = sis.Nombre,
                       Nombre_Perfil = per.Nombre,
                       Nivel = per.Nivel,
                       Estatus = per.Estatus
                   };

        return query;
    }
public void InsertSisPer(SisPer sisper)
        {
          ?? I can't see this.ObjectContext.AddToSisPer();
        }

Plz帮助!!

2 个答案:

答案 0 :(得分:2)

您需要查看演示模型。是否有充分的理由将两个表结合起来?它通过暴露两个表来增加许多你可以避免的工作。如果您不希望客户端上有某些属性可用,则可以在它们上使用ExcludeAttribute。

http://blogs.msdn.com/deepm/archive/2009/11/20/wcf-ria-services-presentation-model-explained.aspx

答案 1 :(得分:0)

正确,你不会看到this.ObjectContext.AddToSisPer。但是您的ObjectContext公开了EntitySet<SisPer> SisPers。每当您调用ObjectSet.Sispers.Add(SisPer sisper)时,只要您遵循Domain Services中描述的约定,就会自动调用您的插入操作。例如。使用Insert-,Add-或Create为插入操作添加前缀,使用[Insert]属性对其进行修饰,传入SisPer实体,然后返回void。