WCF и Entity Framework 4.1 POCO - PullRequest
0 голосов
/ 05 марта 2012

`У меня есть нижеприведенная модель 4.1.

public partial class AWLTR2Model : DbContext
{
    public AWLTR2Model()
        : base("name=AWLTR2Model")
    {
        Configuration.ProxyCreationEnabled = false;
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        throw new UnintentionalCodeFirstException();
    }

    public DbSet<Address> Addresses { get; set; }
    public DbSet<Customer> Customers { get; set; }
    public DbSet<CustomerAddress> CustomerAddresses { get; set; }
}

У меня есть объект POCO ниже, который находится в другом пространстве имен AWLTR2.Entity

using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
public partial class CustomerAddress
{

    public int CustomerID { get; set; }
    public int AddressID { get; set; }
    public string AddressType { get; set; }
    public System.Guid rowguid { get; set; }
    public System.DateTime ModifiedDate { get; set; }

    public virtual Address Address { get; set; }
    public virtual Customer Customer { get; set; }

}

Я раскрыл эти сущности через службы WCF (BasicHTTPBinding), но в моем клиенте я не могу добавить дочерние сущности в родительскую сущность, как показано ниже.

  Customer c = new Customer
        {
            FirstName = "xx",
            CompanyName = "zz",
            EmailAddress = "xx@a.com",
            LastName = "yy",
            ModifiedDate = DateTime.Now,
            NameStyle = false,
            PasswordHash = "abcd",
            PasswordSalt = "abcd",
            Phone = "xx",
            rowguid = System.Guid.NewGuid()
        };

        CustomerAddress ca = new CustomerAddress 
        { 
            AddressID = 9 , 
            Customer = c , 
            AddressType ="Home Office", 
            ModifiedDate=System.DateTime.Now, 
            rowguid = System.Guid.NewGuid()
        };

Метод add отсутствует в клиенте, но я могу сделать это, не выставляя WCF. как показано ниже. c.CustomerAddresses.Add (са);

Я хочу написать метод добавления клиента вместе с адресом и обычным адресом за один раз. Я достиг того же, используя сущность framewor 4.0 с контекстом объекта. но не смог сделать это в Dbcontext.

Любая подсказка?

1 Ответ

0 голосов
/ 05 марта 2012

Если на клиенте не существует метода Add, это, скорее всего, означает, что вы добавили ссылку на службу в службу WCF, но не изменили тип по умолчанию для коллекции - по умолчанию это массив.

Настройте сервисную ссылку и в дополнительных настройках измените Тип коллекции на Список.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...