Làm cách nào để tôi có thể thực hiện LINQ to SQL mà không khớp chính xác? Ví dụ: giả sử tôi có một bảng form
với dữ liệu John Smith (2)
và tôi muốn tham gia vào trường Smith
trong bảng name
. Một cái gì đó như thế nàySử dụng chứa trong LINQ to SQL tham gia
var query =
from f in db.form
join n in db.name
on f.nameField like '%' + n.firstName + '%'
Mặc dù từ khóa like
dường như không có sẵn cho tôi.
Tôi không biết nếu đó là lỗi triển khai lạ trong mã của tôi hay không, nhưng điều này đã cho tôi một lỗi: 'Chỉ các đối số có thể được đánh giá trên máy khách là su pported cho String.Contains method.' Tôi đã nhận nó để làm việc bằng cách sử dụng 'IndexOf' thay vì' Contains' như chi tiết [ở đây] (http://stackoverflow.com/a/7574433/1080891) –
@CavynVonDeylen Hmm, có vẻ như là một hạn chế của Linq-to-SQL. 'string.Contains' là cơ chế tiêu chuẩn trong các ORM khác. –
@CavynVonDeylen bạn có thể thử làm như sau 'từ n trong db.name.ToList(). Where (x => f.nameField.Contains (x.firstName))'. Phương thức '.ToList()' đánh giá bộ thực thể và đặt mọi thứ ra khỏi cơ sở dữ liệu vào bộ nhớ. Bằng cách này, bạn có thể sử dụng phương thức 'string.Contains()'. Chỉ cần lưu ý và không đánh giá tất cả các đối tượng trong bảng của bạn cùng một lúc. –