我一直将代码优先与EF Core结合使用,现在我需要使用数据库优先。关于此的问题,文档和教程很多,其中包括如何scaffold a database,
import cv2
import numpy as np
from pynput.mouse import Button, Controller
import argparse
from constants import *
from utils import *
if __name__ == '__main__':
mouse_loc_old = np.array([0, 0])
mouse_loc = np.array([0, 0])
pinch = False
parser = argparse.ArgumentParser()
parser.add_argument('-a', '--all', help='show all steps', action="store_true")
parser.add_argument('-c', '--contours', help='draw contours', action="store_true")
args = parser.parse_args()
# creating the mouse object
mouse = Controller()
# video capture settings
cap = cv2.VideoCapture(0)
cap.set(3, CAPTURE_WIDTH)
cap.set(4, CAPTURE_HEIGHT)
.......
但是,我唯一的要求在所有这些条件中都缺失了。我只需要支持一些存储过程和视图,但是所有这些文档和问题说明都是关于如何包括表的。
我本来打算脚手架,包括所有内容,然后手动删除不需要的内容,但这似乎不是正确的选择。
答案 0 :(得分:2)
使用EF Core Power Tools,它允许您选择要安装的支架并保存选择。
答案 1 :(得分:2)
可以使用ExecuteSqlCommand
调用原始SQL。因此,调用存储过程的代码将如下所示:
context.Database.ExecuteSqlCommand("YourStoredProcedure @p0, @p1",
parameters: new[] { "Joseph", "Gates" });
更新:
here关于如何从存储过程中获取行:
原始SQL查询可用于执行存储过程。
var user = "johndoe";
var blogs = context.Blogs
.FromSqlRaw("EXECUTE dbo.GetMostPopularBlogsForUser {0}", user)
.ToList();
以下示例使用原始SQL查询,该查询从 表值函数(TVF),然后使用 调用AsNoTracking:
var searchTerm = ".NET";
var blogs = context.Blogs
.FromSqlInterpolated($"SELECT * FROM dbo.SearchBlogs({searchTerm})")
.AsNoTracking()
.ToList();