| 

.NET C# Java Javascript Exception

0
Hallo,

ich versuche mich an Unit-Tests für EF4.1 Anwendungen. Ich habe eine Motel-First-Anwendung modelliert und möchte nun 'ObjectContext' im Rahmen von Unit-Tests durch einen mock ersetzen.

Hierzu habe ich folgendes erstellt:

public interface IContext
{
IObjectSet<Material> Materials { get; }
IQueryable <Recipe> Recipes { get; }
IObjectSet<Element> Elements { get; }
:
:
IObjectSet<TEntity> CreateObjectSet<TEntity> () where TEntity : class, new ();
}

dann habe ich meine automatisch erzeuge 'Entities' Klasse mit diesem Interface erweitert:

public partial class XPRDEntities : IContext
{
....
}

Direkt danach erhalte ich kryptische Fehlermeldungen, die sich aber auf folgenden Fehler im File "XPRD.Designer.cs" zurückführen lassen: (ich zeige die Codestelle)
...
/// <summary>
/// Keine Dokumentation für Metadaten verfügbar.
/// </summary>
public ObjectSet<Material> Materials
{
get
{
if ((_Materials == null))
{
_Materials = base.CreateObjectSet<Material>("Materials");
}
return _Materials;
}
}

Die Fehlermeldung:
Property 'Materials' cannot implement Property from interface 'XPRDDB.IContext'. Type should be 'System.Data.Objects.IObjectSet<XPRDDB.Material>'.

Ich glaube, dass es mit T4 lösbar wäre, indem das 'XPRDDB.Designer.cs' File entsprechend geändert würde, aber davon habe ich gar keine Ahnung.

Kann mir da jemand helfen?
mph
News:
30.09.2011
mph 227 1 6
1 Antwort
1
Objectset implementiert bereit ein Interface IObjectset<TEntity>. Kannst Du das in Deinen Tests nicht verwenden?
30.09.2011
sgf 426 3
Das tue ich ja auch. Habe aber das Problem, dass bei der Erzeugung der Klassen vom EF-Designer nicht 'IObjectSet' sondern 'ObjectSet' verwendet wird. damit erhalte ich Fehlermeldungen des Compilers und das Projekt kann nicht mehr compiliert werden.
mph 04.10.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH