VS 利用LINQ to SQL 工具以方便运用LINQ技术执行数据访问操作(VS创建/连接数据库/添加LINQtoSQL类文件) || VS 解决LinqToSql安装无法找到路径问题


前言

在ASP.NET3.5中,引入了一种新技术LINQ,这种技术使得查询等数据访问操作完全与.NET语言整合,实现了通过.NET语言访问数据库的功能.
VSC2017提供了利用LINQ to SQL 工具以方便运用LINQ技术执行数据访问操作,但是该工具在VSC2017中被看作单个组件,需要人为选中后才能被安装.


Visual Studio Installer安装LINQto SQL 工具

  • 电脑搜索Visual Studio Installer
    选择VisualStudioInstaller

  • Visual Studio Installer 选择修改
    在这里插入图片描述

  • 安装LINQ to SQL
    在这里插入图片描述
    安装成功之后,需要重新启动visual studio


建立数据库

用VS打开本地建立一个数据库(.sql后缀)文件,然后进行后续操作(具体操作展示如下图所示)
在这里插入图片描述

// 下面的这些代码是我的MyPetShop.sql文件里的全部代码
USE master;
GO
/*建立空的MyPetShop数据库*/
/*请根据实际环境更改数据库文件和日志文件的存放路径*/
CREATE DATABASE MyPetShop
ON 
( NAME = MyPetShop,
    FILENAME = 'E:\大三上学期学习文件\WEB\Test\WebSite1\App_Data\MyPetShop.mdf',
    SIZE = 5MB,
    MAXSIZE = 50MB,
    FILEGROWTH = 1MB )
LOG ON
( NAME = MyPetShop_log,
    FILENAME = 'E:\大三上学期学习文件\WEB\Test\WebSite1\App_Data\MyPetShop_log.ldf',
    SIZE = 3MB,
    MAXSIZE = 25MB,
    FILEGROWTH = 1MB )
COLLATE Chinese_PRC_CS_AS;
GO
USE MyPetShop
/*分别建立CartItem、Category、Customer、Order、OrderItem、Product、Supplier等数据表的结构*/

CREATE TABLE [Category] ([CategoryId] int identity PRIMARY KEY,
	[Name] nvarchar(80) NULL,
	[Descn] nvarchar(255) NULL)
CREATE TABLE [Customer]([CustomerId] int identity PRIMARY KEY,
	[Name] [nvarchar](80) NOT NULL,
	[Password] [nvarchar](80) NOT NULL,
	[Email] [nvarchar](80) NOT NULL)
CREATE TABLE [Order] ([OrderId] int identity PRIMARY KEY,
  [CustomerId] int NOT NULL REFERENCES [Customer]([CustomerId]), 
  [UserName] nvarchar(80) NOT NULL,
	[OrderDate] datetime NOT NULL,
  [Addr1] nvarchar(80) NULL,
	[Addr2] nvarchar(80) NULL,
	[City] nvarchar(80) NULL,
  [State] nvarchar(80) NULL,
	[Zip] nvarchar(6) NULL,
	[Phone] nvarchar(40) NULL,
  [Status] nvarchar(10) NULL)
CREATE TABLE [OrderItem]([ItemId] int identity PRIMARY KEY,
  [OrderId] int NOT NULL REFERENCES [Order]([OrderId]),
	[ProName] nvarchar(80),
  [ListPrice] decimal(10, 2) NULL,
	[Qty] int NOT NULL,
	[TotalPrice] decimal(10, 2) NULL)
CREATE TABLE [Supplier] ([SuppId] int identity PRIMARY KEY,
  [Name] nvarchar(80) NULL,
	[Addr1] nvarchar(80) NULL,
	[Addr2] nvarchar(80) NULL,
  [City] nvarchar(80) NULL,
	[State] nvarchar(80) NULL,
	[Zip] nvarchar(6) NULL,
  [Phone] nvarchar(40) NULL)
CREATE TABLE [Product] ([ProductId] int identity PRIMARY KEY,
  [CategoryId] int NOT NULL REFERENCES [Category]([CategoryId]),
  [ListPrice] decimal(10, 2) NULL,
	[UnitCost] decimal(10, 2) NULL,
  [SuppId] int NULL REFERENCES [Supplier]([SuppId]),
	[Name] nvarchar(80) NULL,
  [Descn] nvarchar(255) NULL,
	[Image] nvarchar(80) NULL,
	[Qty] int NOT NULL)
CREATE TABLE [CartItem]([CartItemId] int identity PRIMARY KEY,
	[CustomerId]  int NOT NULL REFERENCES [Customer]([CustomerId]), 
	[ProId] int NOT NULL REFERENCES [Product]([ProductId]), 
	[ProName] [nvarchar](80) NOT NULL,
	[ListPrice] [decimal](10, 2) NOT NULL,
	[Qty] [int] NOT NULL)
/*在Category表中插入示例数据*/
INSERT INTO [Category] VALUES ('Fish', 'Fish')
INSERT INTO [Category] VALUES ('Bugs', 'Bugs')
INSERT INTO [Category] VALUES ('Backyard', 'Backyard')
INSERT INTO [Category] VALUES ('Birds', 'Birds')
INSERT INTO [Category] VALUES ('Endangered', 'Endangered')
/*在Customer表中插入示例数据*/
INSERT [Customer] ([Name], [Password], [Email]) VALUES ('admin', '123', 'admin@qq.com')
INSERT [Customer] ([Name], [Password], [Email]) VALUES ('jack', '123', 'jack@qq.com')
/*在Supplier表中插入示例数据*/
INSERT INTO [Supplier] VALUES ('XYZ Pets', '600 Avon Way', '', 'Los Angeles', 'CA', '94024', '212-947-0797')
INSERT INTO [Supplier] VALUES ('ABC Pets', '700 Abalone Way', '', 'San Francisco', 'CA', '94024', '415-947-0797')
/*在Product表中插入示例数据*/
INSERT INTO [Product] VALUES (1, 12.1, 11.4, 1, 'Meno', 'Meno', '~/Prod_Images/Fish/meno.gif', 100)
INSERT INTO [Product] VALUES (1, 28.5, 25.5, 1, 'Eucalyptus', 'Eucalyptus', '~/Prod_Images/Fish/eucalyptus.gif', 100)
INSERT INTO [Product] VALUES (2, 23.4, 11.4, 1, 'Ant', 'Ant', '~/Prod_Images/Bugs/ant.gif', 100)
INSERT INTO [Product] VALUES (2, 24.7, 22.2, 1, 'Butterfly', 'Butterfly', '~/Prod_Images/Bugs/butterfly.gif', 100)
INSERT INTO [Product] VALUES (3, 38.5, 37.2, 1, 'Cat', 'Cat', '~/Prod_Images/Backyard/cat.gif', 100)
INSERT INTO [Product] VALUES (3, 40.4, 38.7, 1, 'Zebra', 'Zebra', '~/Prod_Images/Backyard/zebra.gif', 100)
INSERT INTO [Product] VALUES (4, 45.5, 44.2, 1, 'Domestic', 'Domestic', '~/Prod_Images/Birds/domestic.gif', 100)
INSERT INTO [Product] VALUES (4, 25.2, 23.5, 1, 'Flowerloving', 'Flowerloving', '~/Prod_Images/Birds/flowerloving.gif', 100)
INSERT INTO [Product] VALUES (5, 47.7, 45.5, 1, 'Panda', 'Panda', '~/Prod_Images/Endangered/panda.gif', 100)
INSERT INTO [Product] VALUES (5, 35.5, 33.5, 1, 'Pointy', 'Pointy', '~/Prod_Images/Endangered/pointy.gif', 100)
GO
/*创建CategoryInsert存储过程*/
CREATE PROCEDURE CategoryInsert
	(
	@Name varchar(80),
	@Descn varchar(255)
	)
AS
	INSERT INTO Category(Name,Descn) VALUES (@Name,@Descn);
	RETURN
GO
USE master;
GO

在VS2019中打开MyPetShop.sql文件(VS2017一样,笔者是2019)
(下图中的第②个步骤是不需要操作的,在这里只为了让大家注意一下.)
在这里插入图片描述

创建App_Data文件夹 因为在VS里,数据库是存在App_Data文件夹里面的.
在这里插入图片描述
添加完App_Data文件夹后,将数据库MyPetShop.sql添加到App_Data文件夹里.
修改MyPetShop.sql文件里的两个文件路径
(如下图所示)
在这里插入图片描述
上图绿框所示的路径实际应该为本项目的App_Data文件夹所在的路径
查找本项目的App_Data文件夹所在的路径方法展示如下图所示:
在这里插入图片描述
在这里插入图片描述
将上图中查找到的路径复制,然后添加到绿框里
修改完路径之后点击VS里的保存(Ctrl+S),然后进行数据库的连接
在这里插入图片描述
连接完数据库之后进行数据库的运行----执行MyPetShop.sql文件中的SQL语句建立MyPetShop数据库.
在这里插入图片描述
运行之后查看运行结果来判断建立数据库是否成功

运行成功标志:
1.运行结果会显示行受影响
在这里插入图片描述
2.App_Data文件夹里会自动导入MyPetShop.sql文件
在这里插入图片描述

运行失败类型:在这里插入图片描述
失败原因是: .sql文件没有成功导入到App_Data文件夹里.

修改方案思路: 在App_Data文件夹里新建一个sql文件 (新建的sql文件的名称和案例里的数据库名称一样即MyPetShop.sql),然后把之前加载的MyPetShop.sql文件的部分代码(创建表部分的代码,创建数据库的代码不需要复制,因为在上面我们已经创建了一个新的同名数据库了)复制到新创建的sql文件里,然后执行连接运行即可成功.

// 下面这些是需要复制的部分MyPetShop.sql文件里的代码---复制代码添加到你们的数据库的时候记得把我这行的注释去掉,不然会报错
CREATE TABLE [Category] ([CategoryId] int identity PRIMARY KEY,
	[Name] nvarchar(80) NULL,
	[Descn] nvarchar(255) NULL)
CREATE TABLE [Customer]([CustomerId] int identity PRIMARY KEY,
	[Name] [nvarchar](80) NOT NULL,
	[Password] [nvarchar](80) NOT NULL,
	[Email] [nvarchar](80) NOT NULL)
CREATE TABLE [Order] ([OrderId] int identity PRIMARY KEY,
  [CustomerId] int NOT NULL REFERENCES [Customer]([CustomerId]), 
  [UserName] nvarchar(80) NOT NULL,
	[OrderDate] datetime NOT NULL,
  [Addr1] nvarchar(80) NULL,
	[Addr2] nvarchar(80) NULL,
	[City] nvarchar(80) NULL,
  [State] nvarchar(80) NULL,
	[Zip] nvarchar(6) NULL,
	[Phone] nvarchar(40) NULL,
  [Status] nvarchar(10) NULL)
CREATE TABLE [OrderItem]([ItemId] int identity PRIMARY KEY,
  [OrderId] int NOT NULL REFERENCES [Order]([OrderId]),
	[ProName] nvarchar(80),
  [ListPrice] decimal(10, 2) NULL,
	[Qty] int NOT NULL,
	[TotalPrice] decimal(10, 2) NULL)
CREATE TABLE [Supplier] ([SuppId] int identity PRIMARY KEY,
  [Name] nvarchar(80) NULL,
	[Addr1] nvarchar(80) NULL,
	[Addr2] nvarchar(80) NULL,
  [City] nvarchar(80) NULL,
	[State] nvarchar(80) NULL,
	[Zip] nvarchar(6) NULL,
  [Phone] nvarchar(40) NULL)
CREATE TABLE [Product] ([ProductId] int identity PRIMARY KEY,
  [CategoryId] int NOT NULL REFERENCES [Category]([CategoryId]),
  [ListPrice] decimal(10, 2) NULL,
	[UnitCost] decimal(10, 2) NULL,
  [SuppId] int NULL REFERENCES [Supplier]([SuppId]),
	[Name] nvarchar(80) NULL,
  [Descn] nvarchar(255) NULL,
	[Image] nvarchar(80) NULL,
	[Qty] int NOT NULL)
CREATE TABLE [CartItem]([CartItemId] int identity PRIMARY KEY,
	[CustomerId]  int NOT NULL REFERENCES [Customer]([CustomerId]), 
	[ProId] int NOT NULL REFERENCES [Product]([ProductId]), 
	[ProName] [nvarchar](80) NOT NULL,
	[ListPrice] [decimal](10, 2) NOT NULL,
	[Qty] [int] NOT NULL)
/*在Category表中插入示例数据*/
INSERT INTO [Category] VALUES ('Fish', 'Fish')
INSERT INTO [Category] VALUES ('Bugs', 'Bugs')
INSERT INTO [Category] VALUES ('Backyard', 'Backyard')
INSERT INTO [Category] VALUES ('Birds', 'Birds')
INSERT INTO [Category] VALUES ('Endangered', 'Endangered')
/*在Customer表中插入示例数据*/
INSERT [Customer] ([Name], [Password], [Email]) VALUES ('admin', '123', 'admin@qq.com')
INSERT [Customer] ([Name], [Password], [Email]) VALUES ('jack', '123', 'jack@qq.com')
/*在Supplier表中插入示例数据*/
INSERT INTO [Supplier] VALUES ('XYZ Pets', '600 Avon Way', '', 'Los Angeles', 'CA', '94024', '212-947-0797')
INSERT INTO [Supplier] VALUES ('ABC Pets', '700 Abalone Way', '', 'San Francisco', 'CA', '94024', '415-947-0797')
/*在Product表中插入示例数据*/
INSERT INTO [Product] VALUES (1, 12.1, 11.4, 1, 'Meno', 'Meno', '~/Prod_Images/Fish/meno.gif', 100)
INSERT INTO [Product] VALUES (1, 28.5, 25.5, 1, 'Eucalyptus', 'Eucalyptus', '~/Prod_Images/Fish/eucalyptus.gif', 100)
INSERT INTO [Product] VALUES (2, 23.4, 11.4, 1, 'Ant', 'Ant', '~/Prod_Images/Bugs/ant.gif', 100)
INSERT INTO [Product] VALUES (2, 24.7, 22.2, 1, 'Butterfly', 'Butterfly', '~/Prod_Images/Bugs/butterfly.gif', 100)
INSERT INTO [Product] VALUES (3, 38.5, 37.2, 1, 'Cat', 'Cat', '~/Prod_Images/Backyard/cat.gif', 100)
INSERT INTO [Product] VALUES (3, 40.4, 38.7, 1, 'Zebra', 'Zebra', '~/Prod_Images/Backyard/zebra.gif', 100)
INSERT INTO [Product] VALUES (4, 45.5, 44.2, 1, 'Domestic', 'Domestic', '~/Prod_Images/Birds/domestic.gif', 100)
INSERT INTO [Product] VALUES (4, 25.2, 23.5, 1, 'Flowerloving', 'Flowerloving', '~/Prod_Images/Birds/flowerloving.gif', 100)
INSERT INTO [Product] VALUES (5, 47.7, 45.5, 1, 'Panda', 'Panda', '~/Prod_Images/Endangered/panda.gif', 100)
INSERT INTO [Product] VALUES (5, 35.5, 33.5, 1, 'Pointy', 'Pointy', '~/Prod_Images/Endangered/pointy.gif', 100)
GO
/*创建CategoryInsert存储过程*/
CREATE PROCEDURE CategoryInsert
	(
	@Name varchar(80),
	@Descn varchar(255)
	)
AS
	INSERT INTO Category(Name,Descn) VALUES (@Name,@Descn);
	RETURN
GO

修改具体步骤如下:

1.新建MyPetShop.sql文件
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
新建完MyPetShop.sql文件后,文件就直接在App_Data文件夹里了
在这里插入图片描述

在这里插入图片描述
新建查询之后,复制部分代码然后运行结果在这里插入图片描述


添加LINQ to SQL文件

在这里插入图片描述
如果在已安装里面没有找到LINQ to SQL文件,可以从联机里面查找,然后安装
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上就是成功将sql文件添加到VS里的步骤
下面是还可能会出现的错误:

VS 解决LinqToSql安装无法找到路径问题

在这里插入图片描述

上面的意思是本该在D:\VS1\Common7\IDE\ItemTemplates\Web\CSharp\2052这个文件下面出现的LinqToSqlObjects文件没有出现

解决方案:
从D:\VS1或者D:\VS1\Common7或者D:\VS1\Common7\IDE这些文件目录下查找LinqToSqlObjects文件,查找到之后复制该文件,然后把该文件再粘贴到D:\VS1\Common7\IDE\ItemTemplates\Web\CSharp\2052目录下的文件里即可.


  • 9
    点赞
  • 32
    收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TwoCM

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值