Sha*_*erg 9 .net vb.net ado.net stored-procedures entity-framework
我创建了一个简单的无参数存储过程,我在下面粘贴了它.我已将存储过程导入到我的实体模型并创建了一个Function Import.永远不会创建模型中的函数,我无法使用ADO.NET实体框架执行此存储过程.我已在XML视图中打开.edmx文件,并确认此存储过程没有错误.我究竟做错了什么?是否真的不可能从实体框架中调用这样一个简单的存储过程?我已将导入函数的返回类型设置为None,看到此存储过程不需要返回任何记录集或值.
存储过程:
ALTER PROC [dbo].[Inventory_Snapshot_Create]
AS
SET NOCOUNT ON
DECLARE @Inventory_Snapshot_ID int
INSERT INTO Inventory_Snapshots (snapshot_timestamp)
VALUES (GETDATE())
SET @Inventory_Snapshot_ID = SCOPE_IDENTITY()
INSERT INTO Inventory_Snapshot_Products (inventory_snapshot_id,
idProduct, stock)
SELECT @Inventory_Snapshot_ID, idProduct, stock
FROM products
SET NOCOUNT OFF
Run Code Online (Sandbox Code Playgroud)
代码尝试执行存储过程:
Dim db As New MilkModel
db.Inventory_Snapshot_Create()
Run Code Online (Sandbox Code Playgroud)
Dan*_*l O 11
首先将它添加到模型中,然后转到Entity Container,然后转到Import the function.
详情如下:
http://msdn.microsoft.com/en-us/library/bb896231.aspx
谢谢,pmarflee.
我实际上是来这里发布我的决议并同时看到你的回复.此代码实际使用实体框架的连接并执行我导入到模型中的存储过程.Microsoft一直在敦促我们开发人员使用Entity Framework而不是LINQ to SQL和其他DAL生成器,但EF 实际上并不是它需要的地方.在它是一个更完整的解决方案之前,我不会在未来的项目中使用它.
这是我最终做的事情:
Dim db As New MilkModel
'==
'Begin dirty hack to execute parameterless/resultless stored
'procedure using Entity Framework (well, sort of using EF).
'http://social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/thread/44a0a7c2-7c1b-43bc-98e0-4d072b94b2ab/
'==
Dim con As DbConnection = db.Connection
con.Open()
Dim cmd As DbCommand = con.CreateCommand()
With cmd
.CommandType = CommandType.StoredProcedure
.CommandText = "MilkModel.Inventory_Snapshot_Create"
.ExecuteNonQuery()
.Dispose()
End With
con.Dispose()
'==
'End dirty hack
'==
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
20000 次 |
最近记录: |