Pracuję nad utworzeniem nowego projektu przy użyciu Code First dla struktury encji 5 w silverlight przy użyciu usług RIA. Stworzyłem projekt testowy z powodu napotkanych problemów i opublikuję poniższy kod.Kod EF5 Pierwszy i usługi RIA Silverlight "Obiekt odwołanie od obiektu nie jest ustawiony na wystąpienie obiektu" błąd budowanie klienta
Mianowicie, podczas próby zbudowania projektu klienta silverlight, który powinien generować klasy proxy klienta, otrzymuję komunikat o błędzie "Obiekt nie jest powiązany z wystąpieniem obiektu".
Dla jasności ten błąd nie działa podczas uruchamiania lub debugowania aplikacji, ale podczas jej budowania.
Wyizolowałem, że dzieje się tak tylko wtedy, gdy mam jakieś właściwości nawigacyjne/klucze obce zdefiniowane w moich Kodach Pierwszych klas.
Każda pomoc dziś wieczorem byłaby bardzo ceniona.
public class Person
{
public int PersonId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime? BirthDate { get; set; }
public virtual List<Character> Characters { get; set; }
}
public class Character
{
public int CharacterId { get; set; }
public int PersonId { get; set; }
public virtual Person Person { get; set; }
public string CharacterName { get; set; }
}
public class CharacterDbContext : DbContext
{
public DbSet<Person> Persons { get; set; }
public DbSet<Character> Characters { get; set; }
public CharacterDbContext()
{
if (HttpContext.Current == null)
{
Database.SetInitializer<CharacterDbContext>(null);
}
}
}
[EnableClientAccess]
public class CharacterDbService : DbDomainService<CharacterDbContext>
{
#region Basic Methods for Person with the context property of Persons
[Query]
public IQueryable<Person> GetPersons()
{
return DbContext.Persons;
}
[Insert]
public void InsertPerson(Person entity)
{
DbEntityEntry<Person> entityEntry = DbContext.Entry(entity);
if (entityEntry.State != EntityState.Detached)
{
entityEntry.State = EntityState.Added;
}
else
{
DbContext.Persons.Add(entity);
}
}
[Update]
public void UpdatePerson(Person entity)
{
DbContext.Persons.AttachAsModified(entity, ChangeSet.GetOriginal(entity), DbContext);
}
[Delete]
public void DeletePerson(Person entity)
{
DbEntityEntry<Person> entityEntry = DbContext.Entry(entity);
if (entityEntry.State != EntityState.Deleted)
{
entityEntry.State = EntityState.Deleted;
}
else
{
DbContext.Persons.Attach(entity);
DbContext.Persons.Remove(entity);
}
}
#endregion
#region Basic Methods for Character with the context property of Characters
[Query]
public IQueryable<Character> GetCharacters()
{
return DbContext.Characters;
}
[Insert]
public void InsertCharacter(Character entity)
{
DbEntityEntry<Character> entityEntry = DbContext.Entry(entity);
if (entityEntry.State != EntityState.Detached)
{
entityEntry.State = EntityState.Added;
}
else
{
DbContext.Characters.Add(entity);
}
}
[Update]
public void UpdateCharacter(Character entity)
{
DbContext.Characters.AttachAsModified(entity, ChangeSet.GetOriginal(entity), DbContext);
}
[Delete]
public void DeleteCharacter(Character entity)
{
DbEntityEntry<Character> entityEntry = DbContext.Entry(entity);
if (entityEntry.State != EntityState.Deleted)
{
entityEntry.State = EntityState.Deleted;
}
else
{
DbContext.Characters.Attach(entity);
DbContext.Characters.Remove(entity);
}
}
#endregion
}
Jaki projekt powoduje problemy, projekt Silverlight lub projekt de EF? Czy możesz również sprawdzić, czy nie brakuje ci żadnych plików i czy SL buduje bez twojego WCF RIA Services link –
@Rikkos To był projekt SL, i to dobrze, jeśli usunę wszystkie relacje z mojej jednostki. Zobacz rozwiązanie częściowe poniżej. Było to połączenie problemów związanych z używaniem TextTemplate w zestawie narzędzi połączonym z innymi rozwiązaniami, które już wypróbowałem. – KitKat