سؤال

ولقد كتبت للتو بعض الاختبارات وحدة وبلدي الرعب فشلت.

وهنا هو بلدي اختبار ...

[TestMethod]
public void FetchWithMoreThanOneConditionUsingKnownTypes() 
{
  using (var scope = EntityObjectScopeProvider.GetNewObjectScope()) 
  {
    var temp = new TempClient() { FirstName = "Rohan", Surname = "West" }; 
    var entity = scope.Extent<ClientEntity>().Where(c => temp.FirstName == c.FirstName && temp.Surname == c.Surname).FirstOrDefault(); 

    Assert.IsNotNull(entity);
    Assert.AreEqual(entity.FirstName, temp.FirstName); 
    Assert.AreEqual(entity.Surname, temp.Surname); 
  }
}

وذلك هو إعطائي الاستثناء التالي، غير قادر على تحويل كائن من نوع 'Entities.Testing.TempClient' لكتابة 'System.String'. هل هذا طبيعي، وآمل أن لا، الاختبار التالي يعمل بشكل صحيح. أعتقد أن هناك مشكلة عند تحليل التعبير ... وسوف تكون ثابتة هذا؟

[TestMethod]
public void FetchWithMoreThanOneConditionUsingTempVariables() 
{
  using (var scope = EntityObjectScopeProvider.GetNewObjectScope()) 
  {
    var temp = new TempClient(){ FirstName = "Rohan", Surname = "West" };   

    string firstname = temp.FirstName; 
    string surname = temp.Surname; 

    var entity = scope.Extent<ClientEntity>().Where(c => c.FirstName == firstname && c.Surname == surname).FirstOrDefault(); 

    Assert.IsNotNull(entity);
    Assert.AreEqual(entity.FirstName, temp.FirstName);
    Assert.AreEqual(entity.Surname, temp.Surname); 
  }
}
هل كانت مفيدة؟

المحلول

وبعد الاتصال بدعم Telerik، واتضح أن لا يكون ذلك ممكنا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top