C# 从WCF数据服务中的EntityName获取EntitySetName

C# 从WCF数据服务中的EntityName获取EntitySetName,c#,wcf,service,C#,Wcf,Service,我有一个名为Client的EnityName,我需要它的集合名Clients,它必须是泛型的,这样我就可以从EntityName获取任何实体的EntitySetName。它在svc文件中公开,但似乎不在服务代理类中。如果我能做到这一点,那么我可以有一个通用的方法,如 public void Add<T>(IEnumerable<T> entitySet) { var myService = GetServiceContext(); foreach (va

我有一个名为Client的EnityName,我需要它的集合名Clients,它必须是泛型的,这样我就可以从EntityName获取任何实体的EntitySetName。它在svc文件中公开,但似乎不在服务代理类中。如果我能做到这一点,那么我可以有一个通用的方法,如

public void Add<T>(IEnumerable<T> entitySet)
{
    var myService = GetServiceContext();

    foreach (var entity in entitySet)
    {
        myService.AddObject(entity.GetType().Name -- NEEDS TO BE ENTITY SET NAME, entity);
    }

    myService.SaveChanges(SaveChangesOptions.Batch);

}
public void Add(IEnumerable entitySet)
{
var myService=GetServiceContext();
foreach(entitySet中的var实体)
{
myService.AddObject(entity.GetType().Name——需要是实体集名称,entity);
}
SaveChanges(SaveChangesOptions.Batch);
}

以下是我如何实现它的:

    private static string ResolveEntitySet(Type type)
    {
        var entitySetAttribute =
            (EntitySetAttribute) type.GetCustomAttributes(typeof (EntitySetAttribute), true).FirstOrDefault();

        if (entitySetAttribute != null)
        {
            return entitySetAttribute.EntitySet;
        }

        return null;
    }
一个快速调用它的示例(与您的类似,但只有一个add):


我是如何实现它的:

    private static string ResolveEntitySet(Type type)
    {
        var entitySetAttribute =
            (EntitySetAttribute) type.GetCustomAttributes(typeof (EntitySetAttribute), true).FirstOrDefault();

        if (entitySetAttribute != null)
        {
            return entitySetAttribute.EntitySet;
        }

        return null;
    }
一个快速调用它的示例(与您的类似,但只有一个add):


您好,我尝试了这个,但是EntitySetAttribute在客户端代理类上不存在。我确保为服务中的每个实体添加了EntitySetAttribute。为了让它与客户合作,您是否需要做任何具体的工作?还有,您使用的是什么版本的WCF数据服务?我在.NETFramework4上。我不必对我的代理类做任何事情,因为EntitySetAttribute已经存在。很高兴能在这里帮上忙!您好,我尝试了这个,但是EntitySetAttribute在客户端代理类上不存在。我确保为服务中的每个实体添加了EntitySetAttribute。为了让它与客户合作,您是否需要做任何具体的工作?还有,您使用的是什么版本的WCF数据服务?我在.NETFramework4上。我不必对我的代理类做任何事情,因为EntitySetAttribute已经存在。很高兴能在这里帮上忙!
[System.Data.Services.Common.EntitySetAttribute("Accounts")]
[System.Data.Services.Common.DataServiceKeyAttribute("Id")]
public partial class Account : System.ComponentModel.INotifyPropertyChanged
{