我目前正在尝试在唯一列上创建全文索引。表定义为:
CREATE TABLE [dbo].[DictionaryWords](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Word] [varchar](255) NOT NULL,
[Frequency] [int] NOT NULL,
CONSTRAINT [PK_DictionaryWords] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [UX_Word] UNIQUE NONCLUSTERED
(
[Word] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
然后我创建了全文目录:
CREATE FULLTEXT CATALOG ft AS DEFAULT
Run Code Online (Sandbox Code Playgroud)
最后尝试创建全文索引:
CREATE …Run Code Online (Sandbox Code Playgroud) 以下是我遇到的问题的简化版本:
var list = new List<int> {1, 2, 3, 4, 5};
// list Count = 5 System.Collections.Generic.List<int>
var obj = list as object;
// obj Count = 5 object {System.Collections.Generic.List<int>}
var enumerable = obj as IEnumerable<object>;
// enumerable null System.Collections.Generic.IEnumerable<object>
Run Code Online (Sandbox Code Playgroud)
注释是Visual Studio 2017中监视窗口中的值
但是,如果我输入:
obj as IEnumerable<object>
Run Code Online (Sandbox Code Playgroud)
在观察窗口,我得到:
obj as IEnumerable<object> Count = 5 System.Collections.Generic.IEnumerable<object> {System.Collections.Generic.List<int>}
Run Code Online (Sandbox Code Playgroud)
那么为什么我可以在监视窗口中投射它并且它可以工作,但如果我在代码中执行它,它的计算结果为null?
我正在使用 Nuget 包 Moq (v4.13.1)
我试图模拟的类/方法具有以下接口:
public interface IAgendaService
{
Task<IList<IMeeting>> GetRecentMeetingsMostRecentFirstAsync(
IWho who,
TimeSpan? timeSpan = null,
int? maxNumberOfMeetings = null);
}
Run Code Online (Sandbox Code Playgroud)
在我的测试方法中,我有以下代码来定义模拟:
Mock<IAgendaService> service = new Mock<IAgendaService>(MockBehavior.Strict);
service.SetupGet(x =>
x.GetRecentMeetingsMostRecentFirstAsync(
It.IsAny<IWho>(),
It.IsAny<TimeSpan?>(),
It.IsAny<int?>()))
.Returns(Task.FromResult((IList<IMeeting>)new List<IMeeting>()));
Run Code Online (Sandbox Code Playgroud)
当我运行测试时,service.SetupGet() 抛出以下异常:
测试方法 Agenda.Web.Tests.Controllers.HomeController.IndexTests.TestIndex 引发异常:System.ArgumentException:表达式不是属性访问:x => x.GetRecentMeetingsMostRecentFirstAsync(It.IsAny(), It.IsAny(), It。 IsAny()) 在 Moq.ExpressionExtensions.ToPropertyInfo(LambdaExpression 表达式) 在 Moq.Mock.SetupGet(Mock 模拟,LambdaExpression 表达式,Condition 条件) 在 Moq.Mock 1.SetupGet[TProperty](Expression1 表达式)
我究竟做错了什么?