QueryMethods 类
提供使用 LINQ 时转换为原生 Realm 查询的方法。
命名空间: Realms
程序集:Realm.dll
语法
public static class QueryMethods
备注
这些方法没有实现,只能在对 Realm 查询结果执行 LINQ 查询时使用,例如All<T>()返回的 IQueryable。
方法
| 编辑本页 查看源代码Contains(string?, string, StringComparison)
返回一个值,该值指示指定的子字符串是否出现在此字符串中。
声明
public static bool Contains(string? str, string value, StringComparison comparisonType)
参数
类型 | 名称 | 说明 |
---|---|---|
字符串 | str | 原始字符串。 |
字符串 | 值 | 要查找的字符串。 |
StringComparison | ComparisonType | 确定如何比较此字符串和值的枚举值之一。 |
返回:
类型 | 说明 |
---|---|
bool |
|
异常
类型 | 条件 |
---|---|
ArgumentNullException |
|
ArgumentException | 当 |
FullTextSearch(string?, string)
对字符串属性执行“简单术语”全文搜索。
声明
public static bool FullTextSearch(string? str, string terms)
参数
类型 | 名称 | 说明 |
---|---|---|
字符串 | str | 要与术语进行比较的字符串。 |
字符串 | 术语 | 要在 |
返回:
类型 | 说明 |
---|---|
bool |
|
备注
在 Realm 查询之外使用此方法时,将引发NotSupportedException 。
示例
var matches = realm.All<Book>().Where(b => b.Summary.FullTextSearch("fantasy novel"));
|
编辑本页
查看源代码
GeoWithin(IEmbeddedObject?, GeoShapeBase)
检查geoShape
是否包含嵌入式对象表示的点。
声明
public static bool GeoWithin(IEmbeddedObject? point, GeoShapeBase geoShape)
参数
类型 | 名称 | 说明 |
---|---|---|
IEmbeddedObject | 点 | 具有 GeoJSON point 形状的嵌入式对象。它必须至少有两个字段 — |
GeoShapeBase | geoShape | GeoBox 、 GeoCircle或GeoPolygon之一,表示将检查 |
返回:
类型 | 说明 |
---|---|
bool |
|
示例
可在地理空间查询中使用的嵌入式对象示例为:
public partial class MyGeoPoint : IEmbeddedObject
{
[MapTo("coordinates")]
private IList<double> Coordinates { get; } = null!;
[MapTo("type")]
private string Type { get; set; } = "Point";
public double Latitude => Coordinates.Count > 1 ? Coordinates[1] : throw new Exception($"Invalid coordinate array. Expected at least 2 elements, but got: {Coordinates.Count}");
public double Longitude => Coordinates.Count > 1 ? Coordinates[0] : throw new Exception($"Invalid coordinate array. Expected at least 2 elements, but got: {Coordinates.Count}");
public MyGeoPoint(double latitude, double longitude)
{
Coordinates.Add(longitude);
Coordinates.Add(latitude);
}
}
请注意,如果您使用的是 Sync,则嵌入式对象类型的名称必须与服务器上 GeoJson 模式中定义的嵌入式对象的title
完全匹配。
Like(string?, string, bool)
在指定的字符串和模式之间执行“类似”比较。
声明
public static bool Like(string? str, string pattern, bool caseSensitive = true)
参数
类型 | 名称 | 说明 |
---|---|---|
字符串 | str | 要与模式进行比较的字符串。 |
字符串 | 模式 | 要比较的模式。 |
bool | 区分大小写 | 如果设置为 |
返回:
类型 | 说明 |
---|---|
bool |
|