我正在使用实体框架并更新了一个表及其存储过程,但是在调用存储过程时出现以下错误.
数据读取器与指定的"FormValueModel.Valuation"不兼容.类型为"ValuationId"的成员在数据读取器中没有具有相同名称的相应列.
ValuationId是我想要自动增加的主键.
我可以从SQL管理工作室执行存储过程查找,当我运行我的应用程序时,它会写入数据库,但随后会出现错误消息.
我不熟悉实体框架,只是有基础,我认为它可能是model.edmx的映射问题.
在模型中重新创建和映射表和存储过程的正确过程是什么?
存储过程.
ALTER PROCEDURE [dbo].[ValuationCreate]
@TrackingNumber varchar(100),
@FormMobiValuationId varchar(100),
@ValuationPropertyId int,
@ValuationFileName varchar(50)
AS
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @ErrorMessage varchar(1000)
BEGIN TRANSACTION
--Insert to Valuation
INSERT INTO [Valuation]
(
TrackingNumber,
FormMobiValuationId,
ValuationPropertyId, -- new
ValuationFileName,
Date,
ValuationStatus,
IsActive
)
VALUES
(
@TrackingNumber,
@FormMobiValuationId,
@ValuationPropertyId,--new
@ValuationFileName,
GETDATE(),
1, --Created
1
)
IF @@ERROR > 0
BEGIN
SET @ErrorMessage = 'Valuation Insert failed'
GOTO ErrorHandler
END
ELSE
BEGIN
COMMIT TRANSACTION
RETURN
END
ErrorHandler:
RAISERROR(@ErrorMessage,16,1); …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用支持ASP.NET Core的托管提供程序发布为ASP.NET Core项目.我收到500内部服务器错误,我认为这是非常常见的.所以,我搜索了互联网和各种论坛,然后我检查了processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%"web.config,他们看起来正确转换processPath="dotnet" and arguments=".\MyApplication.dll".
我还检查了connectionString,它指向正在运行的生产数据库服务器.我通过将connectionString更改为生产数据库并在本地运行项目来确认数据库连接.它有效,我获得了生产数据库访问权限.
我也试图通过在我的Startup.cs中使用以下内容来获取错误信息(无论env如何):
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
app.UseBrowserLink();
Run Code Online (Sandbox Code Playgroud)
我也在web.config中启用了stdoutLog,但是我没有看到该文件夹:
stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout"
Run Code Online (Sandbox Code Playgroud)
我还尝试将launchSettings.json中的applicationUrl和launchUrl更改为我的prod Url,但是这样也没有用.
因此,500内部服务器错误拒绝消失,我仍然没有任何有用的错误消息.该页面只是说:
哎呀.500内部服务器错误启动应用程序时发生错误.
如果有人能在这里帮助我,我真的很感激.
Java中保存值("o")的最佳方法是什么,如下所示:
obj1
/\
/ \
/ \
obj2 obj3
/\ /\
/ \ / \
/ \ / \
obj4 obj5 obj6 obj7
/\ /\ /\ /\
/ \ / \ / \ / \
o8 oN...
Run Code Online (Sandbox Code Playgroud)
它看起来像一棵树,但我不需要任意深度.我更需要强大的数据类型和预定义的好看方法来处理最终结构.
我需要能够通过键获得某种值列表 - 就像我的图片一样.换句话说,结构应该不成为以任何方式平面.
我需要.get(obj3)回来{obj6, obj7}, .get(obj1) - {obj2, obj3}.
现在我使用Map,但是膨胀这样的地图是丑陋的,因为我需要检查结构的每个级别.看起来那样(数据是地图):
if(data.get(somedouble) == null) {
Map<Integer, Data> inm = new TreeMap<>();
inm.put(someint, obj);
Map<Double, Map<Integer, Data>> m = new TreeMap<>();
m.put(somedouble2, inm);
data.put(somedouble, m);
} …Run Code Online (Sandbox Code Playgroud)