C# MVC网站但不包括WCF服务的InvalidOperationException

C# MVC网站但不包括WCF服务的InvalidOperationException,c#,asp.net-mvc,entity-framework,wcf,C#,Asp.net Mvc,Entity Framework,Wcf,我有3个项目: WebsiteLayer dal = new WebsiteLayer(); var test = dal.GetStuff(); WCF服务 MVC5网站 类库 我已经在所有项目上安装了EntityFrameworkV6.0.0.0。 在我的库中,我启用了代码迁移,并添加了域模型、DTO、两个视图模型和一个数据访问层,一个查询/DAL如下所示: public class WebsiteLayer { EntitiesContext db

我有3个项目:

        WebsiteLayer dal = new WebsiteLayer();
        var test = dal.GetStuff();
WCF服务 MVC5网站 类库 我已经在所有项目上安装了EntityFrameworkV6.0.0.0。 在我的库中,我启用了代码迁移,并添加了域模型、DTO、两个视图模型和一个数据访问层,一个查询/DAL如下所示:

public class WebsiteLayer {
    EntitiesContext db;

    public WebsiteLayer()
        : this(new EntitiesContext()) { }
    public WebsiteLayer(EntitiesContext _db) {
        db = _db;
    }

    public List<ItemViewModel> GetStuff() { 
        return (from i in db.Items.Include(x => x.Inventory)
                     select new ItemViewModel() {
                         ID = i.ID,
                         Name = i.Name,
                         Qty = i.Inventory.Sum(x => x.Qty)
                     }).ToList();

    }

}
当这段代码在服务中运行时,一切正常,我从方法中得到了投影视图模型的列表。最高职位

当我在我的网站上运行此代码时,它会失败,并告诉我支持模型已更改,出现InvalidOperationException。怎么回事

因此,总结一下WCF服务项目的共享库工作,而不是MVC网站项目

所有项目都安装了相同版本的EF,每个相关配置文件中都存在连接字符串

我最初确实使用这些服务创建了数据库,但后来我删除了数据库和迁移,并从网站上运行了addmigrationinitialcreate和updatedatabase。网站项目已经能够成功地在正确的位置创建数据库,服务可以成功地从那里获取信息,但是网站仍然声明支持模式已经改变

这会是什么

编辑1: 每次删除数据库时,我都在package manager控制台中运行一个clean Update Database-verbose命令,并且两个输出相同:

CREATE TABLE [dbo].[Inventories] (
[ID] [int] NOT NULL IDENTITY,
[Qty] [int] NOT NULL,
[LocationID] [int] NOT NULL,
[ItemID] [int] NOT NULL,
CONSTRAINT [PK_dbo.Inventories] PRIMARY KEY ([ID])
)
CREATE INDEX [IX_LocationID] ON [dbo].[Inventories]([LocationID])
CREATE INDEX [IX_ItemID] ON [dbo].[Inventories]([ItemID])
CREATE TABLE [dbo].[Items] (
    [ID] [int] NOT NULL IDENTITY,
    [Code] [nvarchar](max),
    [RefCode] [nvarchar](max),
    [Name] [nvarchar](max),
    [CreatedOn] [datetime] NOT NULL,
    [UOM] [nvarchar](max),
    [UnitOfMeasureID] [int] NOT NULL,
    CONSTRAINT [PK_dbo.Items] PRIMARY KEY ([ID])
)
CREATE INDEX [IX_UnitOfMeasureID] ON [dbo].[Items]([UnitOfMeasureID])
CREATE TABLE [dbo].[UnitOfMeasures] (
    [ID] [int] NOT NULL IDENTITY,
    [Name] [nvarchar](max),
    [SortOrder] [int] NOT NULL,
    CONSTRAINT [PK_dbo.UnitOfMeasures] PRIMARY KEY ([ID])
)
CREATE TABLE [dbo].[Locations] (
    [ID] [int] NOT NULL IDENTITY,
    [Name] [nvarchar](max),
    [Code] [nvarchar](max),
    CONSTRAINT [PK_dbo.Locations] PRIMARY KEY ([ID])
)
ALTER TABLE [dbo].[Inventories] ADD CONSTRAINT [FK_dbo.Inventories_dbo.Items_ItemID] FOREIGN KEY ([ItemID]) REFERENCES [dbo].[Items] ([ID]) ON DELETE CASCADE
ALTER TABLE [dbo].[Inventories] ADD CONSTRAINT [FK_dbo.Inventories_dbo.Locations_LocationID] FOREIGN KEY ([LocationID]) REFERENCES [dbo].[Locations] ([ID]) ON DELETE CASCADE
ALTER TABLE [dbo].[Items] ADD CONSTRAINT [FK_dbo.Items_dbo.UnitOfMeasures_UnitOfMeasureID] FOREIGN KEY ([UnitOfMeasureID]) REFERENCES [dbo].[UnitOfMeasures] ([ID]) ON DELETE CASCADE
CREATE TABLE [dbo].[__MigrationHistory] (
    [MigrationId] [nvarchar](150) NOT NULL,
    [ContextKey] [nvarchar](300) NOT NULL,
    [Model] [varbinary](max) NOT NULL,
    [ProductVersion] [nvarchar](32) NOT NULL,
    CONSTRAINT [PK_dbo.__MigrationHistory] PRIMARY KEY ([MigrationId], [ContextKey])
)
INSERT [dbo].[__MigrationHistory]([MigrationId], [ContextKey], [Model], [ProductVersion])
VALUES (N'201406021411556_InitialCreate', N'InventoryLibrary.Migrations.Configuration',  0x1F8B0800000000000400ED5BDD6EDB3614BE1FB0771074B50DA995B4375D60B7C8EC643096C4699C14BB2B1889768849942652818D614FB68B3DD25E6147FF1449FDD9B19D164181A2A6787E78F8F1F0901FFBDF3FFF0E3FAE3CD778C221233E1D99278363D3C0D4F61D42972333E28B37EFCD8F1FBEFF6E78EE782BE373DEEF5DDC0F24291B998F9C07A796C5EC47EC2136F0881DFACC5FF081ED7B16727CEBEDF1F1CFD6C98985418509BA0C63781B514E3C9CFC809F639FDA38E01172AF7C07BB2C6B872FF344AB718D3CCC0264E39139A54F98723F5C5F928710856BD3387309023FE6D85D9806A2D4E7888397A7F70CCF79E8D3E53C8006E4DEAD030CFD16C86538F3FEB4ECDE7520C76FE38158A560AECA8E18F7BD9E0A4FDE6591B164F18DE26B169183D89D438CF93A1E75123F2174A6215B3B1DBB61DC538DEF6002FD084D2766507C3D32E48E47053C0045F19F23631CB93C0AF188E28887C83D326EA20797D8BFE1F59DFF07A6231AB9AEE832380DDF2A0DD07413FA010EF9FA162FF2814C4CC3AACA59B2602126C8E423E4EFDE9AC63518470F2E2E102144630EE3C2BF628A43C4B1738338C7214CE8D4C1494C15EB92AD4F71976663CD0A2E7D3B71A4DDE9663D538EBDDE3AAED1135926E635DA4CE316BBC947F6488274D50DE20F5F04745D84BE77EBBB9948F9E5CB1D0A9798833FBEF6F3DC8F42BB87437998B44EE51FF58EA95F15E7345D740E0EAD72A1352FBF247C1BAF3C907E5D740DB6C610A7DC1AE47DD8C04CE30AAD2E315DF2C79109FF84F9272BECE42D9907F794C07E07423C8C5A171484632F76E2BF776E641CE238D2339A5B9AC0CF3B125BEE9967EE67573BF7163AF3D9E20A2306E87EC6A45666876D325B9E196A325B9E5BBA7A55196CBD675237C9BBCA57BD87D52E3A2F3BA737C9974DF35C45CD6BC23B748E98FB219F850E0EFBACB7CE982937F04DE1926B7845CAA191B29B7D71C3BCDDBBF893B363437DD805E9678CF936493408D59FE04D7594E7D4319AB79534AC79E287C802944900E005E3706E376590CEE804BB9863E3CC4E0FA363C46CE4A8018601381D9D290A64C19932BC558F7E520CC172C1618C57E4C2799FC1022494AB6B8B509B04C86D0C8724D5714DC6832DF4CB5F2638C0345E4E8D43EF64383B73A9C60B1BD20CB44566680970EA80B2EA4EDC38B935254233DAD4B96DD4AA818D542BEC10CC9BA34E3B887D214F3B2F5D8C2B55F24160A849BF758069CAC52560CA42612F89AFE976607FC9AF3E347B80617D08BA18172FB0F680C0741306190E1238CC9C485A0966713B5E714D9179CF705667B2ACFE901111EB9D63AE161DE5BEAFA241C98E921658E14CA721C9B52DC29505AED322E5D61675F944E934958B4E5222CC42755462B92574D21FA66558B4164185EF45081568B5D62EA28EDA09B3AA03EC3A7829F2350168D89DBBEECFFD03A1DF91053D32ACB68E88AE025723D2B65174DD2A849108886E884A4386DF1222F991A0C846259B65A574564E7B5935BCD7F00A05019C9F041E2C6B31E62909367E33EFCF0F79A90ECB661A9AA8F0B6B004C3464B2C7D4D8F791724647C82387A40F1096EEC784A3739F7D664A1DC9A9C5ED589CB73532E11FF5B92CA2F086AD59481BC80B179F166979CACB533AEC82674247251A839C98F7D37F268FDC65B2F9D7045A2F827F53CDF242FEEB4A29AA61DB8612CD9E1A5329E9A034D8C60299CCA4EAFCC9B52835581D00D2649CEDB0E22F156BB013AB462BB01467A9F22CAA72DDD35146485A8A468ECAE27BD3E1295A42D3DC652320D950195CDDD75255C83A82569E8212F9F902ABADA8E4F0703BDB4416F85FEC612A4C3326891DFCD7AD81E85C25DB6A846687E31B35D16315B4D7451C1F79FE37AD1973ABDDD13E64E2755A9FFE42E85F5A20E94EABD61567BB53F86528AB1B48B6940689E88131762F335834D6B107718CCFF74C72E81F1961DAE10250BCC784A8098502BBE975E54BD9CD74D16638EABA95DB54F9CF64EE39038ACAD444D4F625D784994E8DFFA1D51A245B907995207AF46E65F89D8A931FDFD4B29796424C9F1D43836FEDEF2015257E3A9540FC3FDDEE07C1BD010F936FA8442FB11853F7868F5A3A86983372D5BE91299C6AD14296F531CF8C9B77C9BB2954735EF4FBA625A12DF05B89B789FAF15E5CF0628E521437B3EEDFF8CE135E6CF91A27642AA1F8C432FAF10F7CC9BEF85AC6CB86AFB7AA971E922FF20C4754FF43E136EDA6E0676C2767FDBC4F62179ECC3249F865B870327A017414BAB0C4ACD95503FD2393DFA43A1FCE0C36CA77B6BFE9968283D1D2B5D4B4A6B95EBA8C766BEBA9DAED6196AE126EB28ED46465B67A79639DC0BE1ADD0BACDACAE0C8AAF81D2D6624173A3DC4667B786EA65F1D55A7A7A4FB3DB838D566F1D21F509FF5113722F23CB5245FCDF3629B62B49AFE833A50B3FCFBF92477917E9B070853982433E3A0B3959209BC3671B3396BC23FE8CDC08BA9C7B0FD899D259C48388C390B1F7E0568211E7F026FB09E55EF579380B9235FF1C430037497C4F31A3BF44C4750ABF2F3467CB1A15F1E6901DE5E2B9E4F1916EB92E345DFBB4A3A22C7CC59E7687BDC005656C46E7E8096FE2DB3DC3977889EC757E795CAFA47D22AA611F4E085A86C863998E521E7E02861D6FF5E17FCB7A6653AF3C0000 , N'6.1.0-30225')

你的数据库发生了一些微妙的变化。我不确定它是什么,但你可以通过以下方式检测它:使用网站创建数据库,将数据库脚本化为文件,删除数据库并进行迁移,使用服务创建数据库,将数据库脚本化为单独的文件,然后比较两个数据库脚本。此外,您的web.config的相关部分是否相同?是的,配置文件是相同的。当我使用Package Manager控制台时,我在网站和服务项目上选择了默认的项目到库,因此尽管我很难相信,但我现在愿意尝试任何事,我会用电子邮件发回results@ChristopherStevenson我为脚本添加了详细的输出,这两个输出完全相同。