4

私はしばらくの間、このエラーを修正しようとしています。

アプリケーションがデータ コンテキストのインスタンスを作成しようとするたびに、このエラーが発生します。

以下はコードです:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using RandomRentals.Models;
    using System.Data.Entity;

    namespace RandomRentals.Models
    {
        public class RentalContext : DbContext
        {
            public DbSet<Rental> Rentals { get; set; }
            public DbSet<Category> Categories { get; set; }
            public DbSet<Item> Items { get; set; }
            public DbSet<Billing> Billings { get; set; }
            public DbSet<User> Users { get; set; }
            public DbSet<Video> Videos { get; set; }
            public DbSet<Picture> Pictures { get; set; }
            public DbSet<ServiceType> ServiceTypes { get; set; }
            public DbSet<Rating> Ratings { get; set; }
            public DbSet<Business>  Businesses { get; set; }
            public DbSet<BusinessHour> BusinessHours { get; set; }  
        }
    }

スタック トレースは次のとおりです。

[InvalidOperationException: The type 'RandomRentals.Rental' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from EntityObject.]
   System.Data.Entity.Internal.DbSetDiscoveryService.GetSets() +706
   System.Data.Entity.Internal.DbSetDiscoveryService.InitializeSets() +31
   System.Data.Entity.DbContext.DiscoverAndInitializeSets() +56
   System.Data.Entity.DbContext.InitializeLazyInternalContext(IInternalConnection internalConnection, DbCompiledModel model) +79
   System.Data.Entity.DbContext..ctor() +99
   RandomRentals.Models.RentalContext..ctor() +44
   RandomRentals.Models.UserModel..ctor() in C:\Users\nikka\Desktop\RandomRentals\RandomRentals\Models\UserModel.cs:11

[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) +0
   System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache) +98
   System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache) +241
   System.Activator.CreateInstance(Type type, Boolean nonPublic) +69
   System.Web.Mvc.DefaultModelBinder.CreateModel(ControllerContext controllerContext, ModelBindingContext bindingContext, Type modelType) +199
   System.Web.Mvc.DefaultModelBinder.BindComplexModel(ControllerContext controllerContext, ModelBindingContext bindingContext) +572
   System.Web.Mvc.DefaultModelBinder.BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) +449
   System.Web.Mvc.ControllerActionInvoker.GetParameterValue(ControllerContext controllerContext, ParameterDescriptor parameterDescriptor) +317
   System.Web.Mvc.ControllerActionInvoker.GetParameterValues(ControllerContext controllerContext, ActionDescriptor actionDescriptor) +117
   System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +343
   System.Web.Mvc.Controller.ExecuteCore() +116
   System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +97
   System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +10
   System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +37
   System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +21
   System.Web.Mvc.Async.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) +12
   System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62
   System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +50
   System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) +7
   System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) +22
   System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +60
   System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8970061
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184

エラーの全文は次のとおりです。

タイプ「RandomRentals.Rental」はマップされませんでした。Ignore メソッドまたは NotMappedAttribute データ注釈を使用して、型が明示的に除外されていないことを確認してください。型がクラスとして定義されていること、プリミティブ、ネスト、またはジェネリックではないこと、および EntityObject から継承されていないことを確認してください。

編集:レンタルクラスのコード。

[EdmEntityTypeAttribute(NamespaceName="DevelopmentModel", Name="Rental")]
[Serializable()]
[DataContractAttribute(IsReference=true)]

public partial class Rental : EntityObject { #region Factory メソッド

/// <summary>
/// Create a new Rental object.
/// </summary>
/// <param name="rentalID">Initial value of the RentalID property.</param>
/// <param name="agreedPrice">Initial value of the AgreedPrice property.</param>
/// <param name="rentedOn">Initial value of the RentedOn property.</param>
/// <param name="rentalDays">Initial value of the RentalDays property.</param>
/// <param name="returned">Initial value of the Returned property.</param>
/// <param name="rentedBy">Initial value of the RentedBy property.</param>
/// <param name="returnedOn">Initial value of the ReturnedOn property.</param>
/// <param name="ownerReviewed">Initial value of the OwnerReviewed property.</param>
/// <param name="billingID">Initial value of the BillingID property.</param>
/// <param name="itemID">Initial value of the ItemID property.</param>
/// <param name="categoryDescription">Initial value of the CategoryDescription property.</param>
/// <param name="title">Initial value of the Title property.</param>
public static Rental CreateRental(global::System.Int32 rentalID, global::System.Decimal agreedPrice, global::System.DateTime rentedOn, global::System.Int32 rentalDays, global::System.Boolean returned, global::System.Int32 rentedBy, global::System.DateTime returnedOn, global::System.Boolean ownerReviewed, global::System.Int32 billingID, global::System.Int32 itemID, global::System.String categoryDescription, global::System.String title)
{
    Rental rental = new Rental();
    rental.RentalID = rentalID;
    rental.AgreedPrice = agreedPrice;
    rental.RentedOn = rentedOn;
    rental.RentalDays = rentalDays;
    rental.Returned = returned;
    rental.RentedBy = rentedBy;
    rental.ReturnedOn = returnedOn;
    rental.OwnerReviewed = ownerReviewed;
    rental.BillingID = billingID;
    rental.ItemID = itemID;
    rental.CategoryDescription = categoryDescription;
    rental.Title = title;
    return rental;
}

#endregion
#region Primitive Properties

/// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
[DataMemberAttribute()]
public global::System.Int32 RentalID
{
    get
    {
        return _RentalID;
    }
    set
    {
        if (_RentalID != value)
        {
            OnRentalIDChanging(value);
            ReportPropertyChanging("RentalID");
            _RentalID = StructuralObject.SetValidValue(value);
            ReportPropertyChanged("RentalID");
            OnRentalIDChanged();
        }
    }
}
private global::System.Int32 _RentalID;
partial void OnRentalIDChanging(global::System.Int32 value);
partial void OnRentalIDChanged();

/// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
[DataMemberAttribute()]
public Nullable<global::System.Decimal> ProposedPrice
{
    get
    {
        return _ProposedPrice;
    }
    set
    {
        OnProposedPriceChanging(value);
        ReportPropertyChanging("ProposedPrice");
        _ProposedPrice = StructuralObject.SetValidValue(value);
        ReportPropertyChanged("ProposedPrice");
        OnProposedPriceChanged();
    }
}
private Nullable<global::System.Decimal> _ProposedPrice;
partial void OnProposedPriceChanging(Nullable<global::System.Decimal> value);
partial void OnProposedPriceChanged();

/// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
public global::System.Decimal AgreedPrice
{
    get
    {
        return _AgreedPrice;
    }
    set
    {
        OnAgreedPriceChanging(value);
        ReportPropertyChanging("AgreedPrice");
        _AgreedPrice = StructuralObject.SetValidValue(value);
        ReportPropertyChanged("AgreedPrice");
        OnAgreedPriceChanged();
    }
}
private global::System.Decimal _AgreedPrice;
partial void OnAgreedPriceChanging(global::System.Decimal value);
partial void OnAgreedPriceChanged();

/// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
public global::System.DateTime RentedOn
{
    get
    {
        return _RentedOn;
    }
    set
    {
        OnRentedOnChanging(value);
        ReportPropertyChanging("RentedOn");
        _RentedOn = StructuralObject.SetValidValue(value);
        ReportPropertyChanged("RentedOn");
        OnRentedOnChanged();
    }
}
private global::System.DateTime _RentedOn;
partial void OnRentedOnChanging(global::System.DateTime value);
partial void OnRentedOnChanged();

/// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
public global::System.Int32 RentalDays
{
    get
    {
        return _RentalDays;
    }
    set
    {
        OnRentalDaysChanging(value);
        ReportPropertyChanging("RentalDays");
        _RentalDays = StructuralObject.SetValidValue(value);
        ReportPropertyChanged("RentalDays");
        OnRentalDaysChanged();
    }
}
private global::System.Int32 _RentalDays;
partial void OnRentalDaysChanging(global::System.Int32 value);
partial void OnRentalDaysChanged();

/// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
public global::System.Boolean Returned
{
    get
    {
        return _Returned;
    }
    set
    {
        OnReturnedChanging(value);
        ReportPropertyChanging("Returned");
        _Returned = StructuralObject.SetValidValue(value);
        ReportPropertyChanged("Returned");
        OnReturnedChanged();
    }
}
private global::System.Boolean _Returned;
partial void OnReturnedChanging(global::System.Boolean value);
partial void OnReturnedChanged();

/// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
public global::System.Int32 RentedBy
{
    get
    {
        return _RentedBy;
    }
    set
    {
        OnRentedByChanging(value);
        ReportPropertyChanging("RentedBy");
        _RentedBy = StructuralObject.SetValidValue(value);
        ReportPropertyChanged("RentedBy");
        OnRentedByChanged();
    }
}
private global::System.Int32 _RentedBy;
partial void OnRentedByChanging(global::System.Int32 value);
partial void OnRentedByChanged();

/// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
public global::System.DateTime ReturnedOn
{
    get
    {
        return _ReturnedOn;
    }
    set
    {
        OnReturnedOnChanging(value);
        ReportPropertyChanging("ReturnedOn");
        _ReturnedOn = StructuralObject.SetValidValue(value);
        ReportPropertyChanged("ReturnedOn");
        OnReturnedOnChanged();
    }
}
private global::System.DateTime _ReturnedOn;
partial void OnReturnedOnChanging(global::System.DateTime value);
partial void OnReturnedOnChanged();

/// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
public global::System.Boolean OwnerReviewed
{
    get
    {
        return _OwnerReviewed;
    }
    set
    {
        OnOwnerReviewedChanging(value);
        ReportPropertyChanging("OwnerReviewed");
        _OwnerReviewed = StructuralObject.SetValidValue(value);
        ReportPropertyChanged("OwnerReviewed");
        OnOwnerReviewedChanged();
    }
}
private global::System.Boolean _OwnerReviewed;
partial void OnOwnerReviewedChanging(global::System.Boolean value);
partial void OnOwnerReviewedChanged();

/// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
[DataMemberAttribute()]
public global::System.String RenterFeedback
{
    get
    {
        return _RenterFeedback;
    }
    set
    {
        OnRenterFeedbackChanging(value);
        ReportPropertyChanging("RenterFeedback");
        _RenterFeedback = StructuralObject.SetValidValue(value, true);
        ReportPropertyChanged("RenterFeedback");
        OnRenterFeedbackChanged();
    }
}
private global::System.String _RenterFeedback;
partial void OnRenterFeedbackChanging(global::System.String value);
partial void OnRenterFeedbackChanged();

/// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
public global::System.Int32 BillingID
{
    get
    {
        return _BillingID;
    }
    set
    {
        OnBillingIDChanging(value);
        ReportPropertyChanging("BillingID");
        _BillingID = StructuralObject.SetValidValue(value);
        ReportPropertyChanged("BillingID");
        OnBillingIDChanged();
    }
}
private global::System.Int32 _BillingID;
partial void OnBillingIDChanging(global::System.Int32 value);
partial void OnBillingIDChanged();

/// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
public global::System.Int32 ItemID
{
    get
    {
        return _ItemID;
    }
    set
    {
        OnItemIDChanging(value);
        ReportPropertyChanging("ItemID");
        _ItemID = StructuralObject.SetValidValue(value);
        ReportPropertyChanged("ItemID");
        OnItemIDChanged();
    }
}
private global::System.Int32 _ItemID;
partial void OnItemIDChanging(global::System.Int32 value);
partial void OnItemIDChanged();

/// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
public global::System.String CategoryDescription
{
    get
    {
        return _CategoryDescription;
    }
    set
    {
        OnCategoryDescriptionChanging(value);
        ReportPropertyChanging("CategoryDescription");
        _CategoryDescription = StructuralObject.SetValidValue(value, false);
        ReportPropertyChanged("CategoryDescription");
        OnCategoryDescriptionChanged();
    }
}
private global::System.String _CategoryDescription;
partial void OnCategoryDescriptionChanging(global::System.String value);
partial void OnCategoryDescriptionChanged();

/// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
public global::System.String Title
{
    get
    {
        return _Title;
    }
    set
    {
        OnTitleChanging(value);
        ReportPropertyChanging("Title");
        _Title = StructuralObject.SetValidValue(value, false);
        ReportPropertyChanged("Title");
        OnTitleChanged();
    }
}
private global::System.String _Title;
partial void OnTitleChanging(global::System.String value);
partial void OnTitleChanged();

#endregion

}

どんな助けでも大歓迎です

4

2 に答える 2

10

私は同じ問題を抱えていて、答えを望んでいたのでここに来ました。しかし、喜びはありません!Pluralsight には Entity Framework に関するトレーニング ビデオがあります。私は自分の問題に対する答えを見つけました。データベースで生成された .edmx モデルで DbContext を使用しようとしていました。(コード ファーストではありません) そのため、.edmx ファイル内の既定のコード生成テンプレートを Ado.NET DbContext Generator に切り替える必要がありました。.edmx デザイナー サーフェイスを右クリックして [コード生成項目の追加] を選択したときに表示されたコード ジェネレーターのリストに含まれていなかったため、これもダウンロードする 必要がありました。 5.x の 場合はこちら- このリンクをチェックしてください。

したがって、これを .edmx ファイルのコード生成項目としてインストールし、DbContext から派生するコンストラクターをクラスに追加して、接続文字列に名前を付けた後

public class ContentRepository: DbContext
{
    public DbSet<Content_Template> content_Templates { get; set; }
    public DbSet<Master_Template> master_Templates { get; set; }
    public DbSet<Master_Content_Map> master_Content_Maps { get; set; }

    public ContentRepository()
        : base("name=MessagingSystemEntities")
    {
    }

私の問題は解決しました。多分それもあなたを助けるでしょう、私はそう願っています。

于 2012-11-17T21:26:05.987 に答える