我刚刚开始使用ADO.net实体框架我已将两个表一起映射并收到以下错误:
Error 1 Error 11010: Association End 'OperatorAccess' is not mapped. E:\Visual Studio\projects\Brandi II\Brandi II\Hospitals.edmx 390 11 Brandi II
Run Code Online (Sandbox Code Playgroud)
不知道是什么我做错了
经过大量的研究后,我对我应该在sql中使用哪个身份跟踪器感到有些困惑.
根据我的理解,scope_identity将为我提供从任何表更新的最后一个id,ident_current将返回指定表中的最后一个id.
所以鉴于这些信息,在我看来,最好使用的版本(如果您知道要更新哪个表)是ident_current.然而,在阅读时,似乎大多数人更喜欢使用scope_identity.这背后的原因是什么,我的逻辑是否存在缺陷?
我刚从http://www.codeplex.com/MSFTDBProdSamples/Release/ProjectReleases.aspx?ReleaseId=16040下载并安装了最新的Adventure Works数据库,以便更多地使用LINQ,并发现有一些数据类型是在Visual Studio 2008中本机不支持.我得到"一个或多个选定项目包含设计器不支持的数据类型".错误信息.
我发现在这种情况下空间数据类型是个问题.
我的问题是:
第二个问题是我猜对我来说最令人费解.我可以理解为什么不能从MySQL,Oracle,Postgre SQL等支持所有数据类型.我认为SQLServer开发小组可能会对Visual Studio开发小组有所了解,你知道在大厅里大喊大叫.
我们的原始数据库为人名命名为first,middle,last.我们现在创建了名为firstname,middlename和lastname的字段.在我们进行此转换的过程中,我创建了一个触发器,可以在前一个字段收到更新或插入的任何时候将数据从第一个名称复制到第一个名称,从中间名到中间名,从最后一个到最后一个名称.问题是当我们批量上传文件到我们的数据库时,它会减慢一切,并可能导致其他事件超时.
以下是我的代码:
USE [Database]
GO
/****** Object: Trigger [dbo].[CopyFirstName] Script Date: 07/15/2009 08:35:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[CopyFirstName]
ON [dbo].[Patients]
AFTER INSERT,UPDATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
IF UPDATE([First]) BEGIN
SET NOCOUNT ON;
declare @ChangedField nvarchar(50);
select @ChangedField = [First] from inserted
update dbo.Patients set FirstName = @ChangedField where [First] = @ChangedField
END
end
Run Code Online (Sandbox Code Playgroud)
这可以改进或以另一种方式完成吗?